2016-11-13 38 views
1

我有下列表格。刪除mySQL中三個不同表的相對行

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行這是相關的FK在表1中刪除的行刪除行,我也去刪除表中3行其是相關的FK到表2中刪除的行?提前致謝。

+1

在外鍵引用中使用'onDelete('cascade')'。 –

+0

謝謝。我會研究它 –

回答

1

刪除當前exisitng外鍵約束,然後用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; 

使第三臺類似的變化。

+0

謝謝!你的代碼是正確的。 –

0

在創建表僱員和客戶表中,添加下列行:

corp_id REFERENCES corp_table (corp_id) ON DELETE CASCADE 

類似地對於第三表,後基準鍵添加線。

+0

如果我創建了表格,該怎麼辦?我如何改變它們以獲得該約束? –

相關問題