我有一個(gè)組件數(shù)據(jù)庫(kù)。每個(gè)組件都是特定的類(lèi)型。這意味著組件和類(lèi)型之間存在多對(duì)一的關(guān)系。刪除類(lèi)型時(shí),我想刪除所有具有該類(lèi)型外鍵的組件。但是,如果我沒(méi)記錯(cuò)的話(huà),級(jí)聯(lián)刪除將在刪除組件時(shí)刪除類(lèi)型。有什么辦法可以做我所描述的嗎?
3 回答

小怪獸愛(ài)吃肉
TA貢獻(xiàn)1852條經(jīng)驗(yàn) 獲得超1個(gè)贊
這就是您要包含在組件表中的內(nèi)容。
CREATE TABLE `components` ( `id` int(10) unsigned NOT NULL auto_increment, `typeId` int(10) unsigned NOT NULL, `moreInfo` VARCHAR(32), -- etc PRIMARY KEY (`id`), KEY `type` (`typeId`) CONSTRAINT `myForeignKey` FOREIGN KEY (`typeId`) REFERENCES `types` (`id`) ON DELETE CASCADE ON UPDATE CASCADE)
請(qǐng)記住,您需要使用InnoDB存儲(chǔ)引擎:默認(rèn)的MyISAM存儲(chǔ)引擎不支持外鍵。

慕森卡
TA貢獻(xiàn)1806條經(jīng)驗(yàn) 獲得超8個(gè)贊
您必須將外鍵約束定義為ON DELETE CASCADE。
注意:您需要使用InnoDB存儲(chǔ)引擎,他默認(rèn)的MyISAM存儲(chǔ)引擎不支持外鍵關(guān)系。
CREATE TABLE `table2` (`id` int(11) NOT NULL auto_increment,`name` int(11) NOT NULL,PRIMARY KEY (`id`),KEY `ids` (`ids`)CONSTRAINT `foreign` FOREIGN KEY (`ids`) REFERENCES `table2` (`ids`) ON DELETE CASCADE ON UPDATE CASCADE)

猛跑小豬
TA貢獻(xiàn)1858條經(jīng)驗(yàn) 獲得超8個(gè)贊
使用這個(gè)SQL
在條件T1.key = T2.key的情況下,從T1內(nèi)聯(lián)接T2上刪除T1,T2
添加回答
舉報(bào)
0/150
提交
取消