我正在尝试将数据从旧表迁移到两个不同的表中。我很好奇是否有办法执行如下操作。
INSERT INTO table1(v1, v2)
INSERT INTO table2(LAST_INSERT_ID(), v3)
SELECT v1, v2, v3 FROM old_table
我必须为此编写一个程序吗?
最佳答案
不,这是不可能的。您需要发出两个单独的插入语句。
INSERT INTO table1(v1, v2)
SELECT v1, v2, v3, v4 FROM old_table;
INSERT INTO table2(v3, v4)
SELECT v1, v2, v3, v4 FROM old_table;
您可以将其包含在事务中。
但是,如果您有更复杂的需求,并且可能会将相同的数据插入到您不想手动键入的多个表中,则可以在过程中编写循环并执行提供表名和列名的动态语句。 INFORMATION_SCHEMA表将是一个很好的起点。
关于mysql - 将选择结果插入到多个表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39205816/