How can I add ON DELETE constraint on the table?
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.
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`