带有“ON DELETE CASCADE”的外键

时间:2011-09-12 19:31:08

标签: php sql foreign-keys

是否有人知道如何使用“ON DELETE CASCADE”为“InnoDB”类型的表添加外键

1 个答案:

答案 0 :(得分:1)

首先,确保两个表都是InnoDB。即使create语句指示InnoDB,如果未安装此引擎,MySQL也将使用MyISAM。所以检查它们是否真的是InnoDB。

接下来,确保两列的类型完全相同(例如,如果其中一列是int(11)而另一列是int(11)unsigned,则无法创建外键)。确保您引用的列(在您的情况下在商务表中的id)具有唯一索引(MySQL将允许使用任何索引列,但最好使用唯一索引)。如果它是主键,则它已经具有唯一索引。

接下来,根据文档和其他用户的指示运行该语句:

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

如果您无法添加外键,可以create trigger instead