我要执行的操作与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