我有以下表格。
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中删除的行?提前谢谢。
答案 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个表,在引用键后添加行。