2012-10-29 50 views
0

我已經在MySQL數據庫中寫入了表。碰巧有一個 藝術表,和三個相關的表,雕塑,繪畫和照片。觸發器從第二個MySQL表中刪除

藝術中的每一件物品也恰好在其他三件中的一件中。我試圖編寫一個觸發器,以便當我在繪畫中刪除一個元組時,觸發器將刪除Art中對應的元組。

這應該只適用於繪畫,並且不會影響雕塑或照片。這些項目中的每一個都有一個id_no,並且在繪畫中有一個匹配的id_no,這是繪畫的每一個。我不能刪除Art中沒有的任何id_no,因爲它可能仍然存在於Sculpture或Photo中。

所以我不確定是否應該暫時保存id_no(從繪畫中刪除),然後在觸發器中進行比較和刪除(來自Art),或者甚至是如何做到這一點完成。

DELIMITER $ 創建觸發器delete_painting 刪除繪畫 從藝術刪去

回答

1
DELIMITER $ 
CREATE TRIGGER delete_painting AFTER DELETE ON Painting 
    DELETE FROM Art WHERE OLD.id_no = Art.id_no; $ 

的「表」 OLD只包含您已經刪除了,所以你可以做到這一點的行之後。