从MySQL触发器中的第三个表获取信息

时间:2013-11-18 19:38:28

标签: mysql triggers

我想要做的是类似于this,除了操作是插入而不是更新。我将使用该问题中使用的相同示例,根据我的上下文进行修改;

我想做这样的事情:

CREATE TRIGGER au_TableA AFTER UPDATE TableA
FOR EACH ROW BEGIN
INSERT INTO TableB (cID, points) VALUES (NEW.cID, TableC.points);
END

cID存在于TableA和TableC中。因为它不是UPDATE,所以我不能像其他问题那样进行JOIN(对吧?)。有没有办法将TableC中的数据INSERTED插入到表B中?

1 个答案:

答案 0 :(得分:2)

如果我理解你的问题,这应该是你需要的触发器:

CREATE TRIGGER au_TableA AFTER UPDATE TableA
FOR EACH ROW
BEGIN
  INSERT INTO TableB (cID, points)
  SELECT TableC.cID, TableC.points
  FROM   TableC
  WHERE  TableC.cID = NEW.cID;
END

在这种情况下,您不需要加入,但您可以使用语法INSERT INTO ... SELECT