How can I add ON DELETE constraint on the table?

后端 未结 2 1432
终归单人心
终归单人心 2021-02-01 14:30

How can I add ON DELETE constraint on the table?

相关标签:
2条回答
  • 2021-02-01 14:34

    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 讨论(0)
  • 2021-02-01 14:56

    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`
    
    0 讨论(0)
提交回复
热议问题