从mySQL中的三个不同表中删除相对行

时间:2016-11-13 08:46:32

标签: mysql sql

我有以下表格。

corp_id (PK) | corp_name
----------------------------------------
1                   | freshfruit 
2                   | realsteel
3                   | firmwall

corp_id (FK)| empl_id (PK) | empl_name
--------------------------------------------------------
1                   | 1                   | andy
1                   | 2                   | maria
2                   | 3                   | john
2                   | 4                   | neil
3                   | 5                   | stephan
3                   | 6                   | darwing

empl_id (FK)| client_id (PK)| client_name
---------------------------------------------------------------
1                   | 1                    | moris
1                   | 2                    | bean
1                   | 3                    | bay
3                   | 4                    | phill
4                   | 5                    | hank
5                   | 6                    | suzy

如果删除表1中的行,如何删除表2中与表1中已删除行相关的FK中的行,并且我还要删除表3中与相关FK相关的行表2中删除的行?提前谢谢。

2 个答案:

答案 0 :(得分:1)

删除当前存在的外键约束,然后使用ON DELETE CASCADE

再次添加它们
ALTER TABLE table2 DROP FOREIGN KEY corp_id

ALTER TABLE table2
ADD CONSTRAINT fk_2
FOREIGN KEY (corp_id) REFERENCES table1 ON DELETE CASCADE;

对第三个表进行类似的更改。

答案 1 :(得分:0)

创建表employee和client表时,添加以下行:

corp_id REFERENCES corp_table (corp_id) ON DELETE CASCADE

类似于第3个表,在引用键后添加行。