我正在学习mysql,我尝试将数据从一个表传递到另一个表。
在详细信息中,我的table1包含列id,名字,姓氏等。
然后我有一个带有列id,firstname,lastname,bodyfat,bodyweight,matchid的table2。
我想要的是将数据的firstname和lastname从table1传递给table2,它们应该在table1.id = table2.matchid上匹配。每次将新记录插入table1时,也应该执行该过程,因此特定值也会更新并显示在表2中。
有没有办法实现这个目标?
先谢谢!
答案 0 :(得分:1)
使用后插入触发器:
RewriteCond %{REQUEST_FILENAME} !-d
这假设您只想在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 ;
中插入带有姓和名的新记录,这是table2
中的所有可用信息。您可以在插入中包含其他列,但您必须指定如何执行此操作。
除此之外,如果您需要最初从table1
填充table2
,则可以table1
:
INSERT INTO ... SELECT
答案 1 :(得分:1)
您可以在表1上使用触发器。触发器是与表关联的命名数据库对象,并在表发生特定事件时激活。触发器的一些用途是执行对要插入表中的值的检查,或者对更新中涉及的值执行计算。
您可以在表1中的insert事件上设置触发器。这是一个链接https://dev.mysql.com/doc/refman/5.7/en/triggers.html,它显示了mysql中的触发器示例。希望这有帮助
答案 2 :(得分:1)
您可以使用AFTER关键字在Table1上使用insert或update语句在表1中创建触发器,这样无论何时在表1中插入数据,都将调用触发器并根据您的触发器定义执行相应的操作。 / p>
有关如何为MySQL创建和使用触发器的更多详细信息,请参阅以下链接。 https://dev.mysql.com/doc/refman/5.7/en/triggers.html