2012-10-29 46 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只包含您已经删除了,所以你可以做到这一点的行之后。