如何在表格上添加ON DELETE约束?
答案 0 :(得分:73)
使用ALTER TABLE + ADD CONSTRAINT。例如。如果你想在每次删除成员时通过member_id和级联删除配置文件链接表成员和配置文件,你可以这样写:
ALTER TABLE profiles
ADD CONSTRAINT `fk_test`
FOREIGN KEY (`member_id` )
REFERENCES `members` (`member_id` )
ON DELETE CASCADE
如果您需要更新该约束 - 您必须先将其删除,然后重新创建,没有直接的方法来更改它。
ALTER TABLE profiles DROP FOREIGN KEY `fk_test`
答案 1 :(得分:-3)
如果已经创建了外键,那么有一个技巧对我有用。 您可以修改数据库的转储并使用修改再次导入它。
如果你使用的是Mysql和Linux shell,那就是这样的:
首先,导出数据库:
$ mysql -u <user> -p <namedatabase> > database.sql
然后,打开database.sql文件并查找要更改的表。
在外键句末尾添加ON DELETE CASCADE
并保存。
其次,使用修改导入数据库:
$ mysql -u <user> -p <namedatabase> < database.sql
您将使用ON DELETE CASCADE。