我正在尝试将旧表中的数据迁移到两个不同的表中。我很好奇是否有办法做以下事情。
INSERT INTO table1(v1, v2)
INSERT INTO table2(LAST_INSERT_ID(), v3)
SELECT v1, v2, v3 FROM old_table
我是否必须为此编写程序?
答案 0 :(得分:2)
不,这是不可能的。您需要发出两个单独的插入语句。
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表是一个很好的起点。