s。可以在同一個表中執行子記錄的Delete Cascade
。我發現this post in the MYSQL forums有答案。這是我如何運作的。
- 我不得不確保主ID的父母被設置爲NULL。
- 我不得不確保主ID和父ID被設置爲完全相同的字段類型,如INT。
- 我還必須確保主ID設置爲自動增量。
從MySQL論壇:
create table edges(
ID int PRIMARY KEY,
parentid int,
unique key(id, parentid),
foreign key(parentID) references edges(ID) ON DELETE CASCADE ON UPDATE CASCADE
) engine=innodb;
insert into edges(ID,parentID) values (1,null),(2,1),(3,1),(4,2);
現在做到這一點,看着父母和所有兒童刪除級聯:
delete from edges where id=2;
select * from edges will then show two records left. Record 1 and record 3.
這是巨大的我的項目,一個畫廊,用戶可以在相冊內的相冊內創建相冊。
或4.通過添加另一個表從父記錄中分離出子記錄。 – 2011-05-04 15:32:30
4在我的情況下不是一個選項。你的第二個建議對我最有效。不知道你可以爲同一張桌子做。謝謝! – IgalSt 2011-05-04 15:52:44