我的table1包含列(id,firstname,lastname),table2包含列(id,firstname,lastname,ans3,mission,matchid)。到目前为止,我已经创建了这个触发器,它将table1中的firstname和lastname插入table2。现在我想要的是将table2中的matchid与table1中的id连接起来。例如,当matchid = 1时,显示来自table1且id = 1的记录,并且table2记录在同一行中。这是我到目前为止用触发器做的事情。
DELIMITER //
CREATE TRIGGER after_user_insert AFTER INSERT ON table1
FOR EACH ROW
BEGIN
INSERT INTO table2 (firstname, lastname, matchid)
VALUES (NEW.firstname, NEW.lastname, NEW.id);
END; //
DELIMITER ;
这是我在phpmyadmin中获得的照片。你可以看到我没有想到如何将table2.matchid加入table1.id
答案 0 :(得分:2)
从您的评论中,您可能想要更新table2
中已存在的用户记录。如果是这样,您可以在更新时使用ON DUPLICATE KEY
:
DELIMITER //
CREATE TRIGGER after_user_insert AFTER INSERT ON table1
FOR EACH ROW
BEGIN
INSERT INTO table2 (firstname, lastname, matchid)
VALUES (NEW.firstname, NEW.lastname, NEW.id)
ON DUPLICATE KEY UPDATE matchid = NEW.id;
END; //
DELIMITER ;
此解决方案要求table2
中的名字和姓氏都有唯一索引。如果您没有这样的唯一索引,那么您可以添加一个:
ALTER TABLE table2 ADD UNIQUE unq_idx (firstname, lastname);