2013-07-07 141 views
0
+--------+--------+ 
    |A_id |A_desc | 
    +--------+--------+ 

    table B: 
    +--------+--------+ 
    |B_id |B_desc | 
    +--------+--------+ 

    table c: 
    +--------+--------+ 
    |A_id |B_id | 
    +--------+--------+ 

我想通過獲取「B_id」的值來刪除c表中的1行和b表中的1行而不刪除表a,任何人都可以解決這個問題?SQL刪除外鍵

+0

您正在使用哪種RDBMS?爲什麼表'A'正在修改?有沒有觸發器? – alzaimar

+0

表A不依賴任何其他表;因此,除非您的團隊設置了某種觸發器,否則您應該可以從表B和C中刪除,而不會有任何問題。 – Tom

回答

1

你只能用觸發器/扭動一些其他代碼來做到這一點。

請注意,即使你使用觸發器/代碼,你可能會得到一個例外,因爲在C以外的記錄可以指向表B.

你可以做的是運行類似:

delete from B where B_id not in (select B_id from C) 

運行刪除後

+0

解決了「刪除級聯」謝謝大家 – al1991