多个字段级联mysql



我有一个问题:

我有一个表"likes",它的结构如下:

 -- likeID
 -- elementID
 -- elementType

表的其余部分不重要。让我来解释一下这个表:likeID只是插入的类的ID。elementID是被喜欢的元素的ID。elementID不是唯一的,因为元素可以有不同的elementType,因此存在字段elementType。

我们这样写:

我喜欢elementType 0的元素1。现在它将是(likeID, elementID, elementType) VALUES (1,1,0)作为mysql插入。现在我喜欢elementType 1的元素1。现在是(likeID, elementID, elementType) VALUES (1,1,1)

现在我有两个额外的表:elementType 0和elementType 1的表。它们的结构类似如下:

 -- thisElementID
 -- blabla other fields not important

 -- otherElementID
 -- blabla other fields not important

我现在需要的是一个ON DELETE CASCADE。当我删除作为thiselementid表一部分的elementType 0的元素1时,它也应该为它删除类似的元素。但问题是,elementType 1的元素1具有相同的ID值(otherElementID)。

我怎样才能使它工作?我希望你明白我的意思!:)

为每个额外的表创建触发器:

delimiter //
CREATE TRIGGER extra0_del AFTER DELETE ON extra0
FOR EACH ROW
BEGIN
  DELETE FROM likes WHERE elementID = OLD.thisElementID AND elementType = 0;
END;
//
CREATE TRIGGER extra1_del AFTER DELETE ON extra1
FOR EACH ROW
BEGIN
  DELETE FROM likes WHERE elementID = OLD.otherElementID AND elementType = 1;
END;
//
delimiter ;

用额外表的名称替换extra0extra1

最新更新