如何在表上添加ON DELETE约束?

时间:2011-01-14 06:42:20

标签: mysql sql

如何在表格上添加ON DELETE约束?

2 个答案:

答案 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。