2011-09-12 147 views
-3

有誰知道如何添加外鍵與「ON DELETE CASCADE」類型「InnoDB的」表外鍵與「ON DELETE CASCADE」

+0

你有什麼如此遠? –

+1

您是否檢查過[文檔](http://dev.mysql.com/doc/refman/5.5/en/innodb-foreign-key-constraints.html)? –

+0

我對MyISAM執行了此查詢「ALTER TABLE tbl_businessalbum ADD CONSTRAINT fk_1 FOREIGN KEY(businessId)REFERENCES tbl_business(id)ON DELETE CASCADE」。查詢成功執行bt MyISAM引擎不處理外鍵DELETE CASCADE屬性http://dev.mysql.com/doc/refman/5.0/en/ansi-diff-foreign-keys.html。 –

回答

1

首先,要確保兩個表是InnoDB的。即使create語句表示InnoDB,如果未安裝此引擎,MySQL也會使用MyISAM。所以檢查他們是否真的是InnoDB。

接下來,確保兩列的類型完全相同(例如,如果其中一個是int(11),另一個是int(11)無符號的,則不能創建外鍵)。確保你引用的列(在你的案例中的bussiness表中的id)有唯一索引(MySQL允許使用任何索引列,但最好使用唯一索引)。如果它是主鍵,則它已具有唯一的索引。

接下來,運行該語句,根據文檔和其他用戶指出:

ALTER TABLE yourtable ADD FOREIGN KEY xyzkey (field) REFERENCES foreigntable (foreignfield) ON DELETE CASCADE;

如果您不能添加外鍵,你可以create trigger instead