我无法获得以下代码以使用此page作为参考以及此站点上的其他帖子。我需要创建一个触发器,只要表A被更新,它就会在表B中插入一条记录。下面的代码显示了我正在尝试的内容;但是这会产生语法错误(#1064)。我还不清楚我是否需要包含'DELIMITER $$'语法。我感谢你的帮助MySQL触发器将表A中的记录插入表B
DELIMITER $$
CREATE TRIGGER MyTrigger
AFTER INSERT
ON TableA
FOR EACH ROW
BEGIN
INSERT INTO TableB SET
TableA_id = NEW.TableB_id,
TableA_date = NEW.TableB_date,
TableA_comment = NEW.TableB_comment;
END;
END $$
DELIMITER ;
编辑:在伪代码上面,我是用$ TableName_ $字段名惯例,表明A列属于表A,B列属于表B.我应该有在我原来的问题中更加明确。有人在下面评论我在错误的一面有NEW指标(应在表A中),但该评论似乎已被删除。有人可以确认吗?感谢您的帮助
在回答您的编辑:你是说在'TableB'你*不*有一个叫做'TableA_id'列,而是要插入一行到' TableB',使得TableB.TableB_id的值等于TableA.TableA_id的值等等。 – eggyal
@eggyal TableB由TableB_id,TableB_date和TableB_comment组成;同样对于Tabel A.对不起,我的原始问题没有更清楚。我基本上想要在表A更新时在表B中插入相同的记录 – Arkady
在这种情况下,您确实需要在您的INSERT语句中颠倒列名。 'SET TableB_id = NEW.TableA_id'等。 – eggyal