在mysql中将数据从一个表传递到另一个表

时间:2017-10-16 08:05:53

标签: mysql

我正在学习mysql,我尝试将数据从一个表传递到另一个表。

在详细信息中,我的table1包含列id,名字,姓氏等。

然后我有一个带有列id,firstname,lastname,bodyfat,bodyweight,matchid的table2。

我想要的是将数据的firstname和lastname从table1传递给table2,它们应该在table1.id = table2.matchid上匹配。每次将新记录插入table1时,也应该执行该过程,因此特定值也会更新并显示在表2中。

有没有办法实现这个目标?

先谢谢!

3 个答案:

答案 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