我要执行的操作与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中的数据插入到TableB中吗?

最佳答案

如果我正确理解了您的问题,那么这应该是您需要的触发器:

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


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

10-04 17:57