gpt4 book ai didi

Mysql触发器将数据从一个表传递到另一个匹配表

转载 作者:行者123 更新时间:2023-11-29 05:58:55 25 4
gpt4 key购买 nike

我的表 1 包含列(id、名字、姓氏),表 2 包含列(id、名字、姓氏、ans3、授权、matchid)。到目前为止,我已经制作了将名字和姓氏从表 1 插入到表 2 的触发器。现在我想要的是将来自 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

You can see that i didn't figure how to join table2.matchid to table1.id

---编辑--- enter image description here

最佳答案

从您的评论看来,您可能打算更新 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);

关于Mysql触发器将数据从一个表传递到另一个匹配表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46768447/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com