开发者

How can I add ON DELETE constraint on the table?

How can I add ON DELETE constraint on th开发者_运维知识库e table?


Use ALTER TABLE+ADD CONSTRAINT. E.g. if you want to link tables members and profiles by member_id and cascade delete profiles each time the member is deleted, you can write something like this:

ALTER TABLE profiles
   ADD CONSTRAINT `fk_test`
   FOREIGN KEY (`member_id` )
   REFERENCES `members` (`member_id` )
   ON DELETE CASCADE

If you will need to update that constraint - you'll have to remove it at then create again, there's no direct way to alter it.

ALTER TABLE profiles DROP FOREIGN KEY `fk_test`


If the foreign key is already created, there is a trick that worked for me. You can modified the dump of your database and import it again with the modifications.

If you are using Mysql and Linux shell, it'd be like this:

First, export your database:

$ mysql -u <user> -p <namedatabase> > database.sql

Then, open the database.sql file and look for the table you want to alter.

Add ON DELETE CASCADE at the end of the foreign key sentence and save it.

Second, import your database with the modifications:

$ mysql -u <user> -p <namedatabase> < database.sql

And you will have your ON DELETE CASCADE working.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜