sql - 在一个查询中插入多个表
答
MySQL不支持在单个INSERT statement中插入多表。甲骨文是我知道的唯一一个,奇怪...
INSERT INTO NAMES VALUES(...)
INSERT INTO PHONES VALUES(...)
+7
Joshua Smith的答案比这个更好。 – 2015-09-24 14:44:38
答
你不能。但是,您可以使用交易并将它们都包含在一个事务中。
START TRANSACTION;
INSERT INTO table1 VALUES ('1','2','3');
INSERT INTO table2 VALUES ('bob','smith');
COMMIT;
答
我有同样的问题。我用for循环解决它。
例子:
如果我想在2和相同表写,用循环
for x = 0 to 1
if x = 0 then TableToWrite = "Table1"
if x = 1 then TableToWrite = "Table2"
Sql = "INSERT INTO " & TableToWrite & " VALUES ('1','2','3')"
NEXT
要么
ArrTable = ("Table1", "Table2")
for xArrTable = 0 to Ubound(ArrTable)
Sql = "INSERT INTO " & ArrTable(xArrTable) & " VALUES ('1','2','3')"
NEXT
如果你有一个小的查询我不知道这是否是最好的解决方案,但是如果你的查询非常大,并且它在if/else/case条件下的动态脚本中,这是一个很好的解决方案。
+0
当您必须为每个表插入相同的值和/或相同数量的值时非常有用。 – 2014-04-30 07:26:03
我猜对于所有的数据库,答案都是“你不能”,但为了以防万一,你在使用什么数据库? – LittleBobbyTables 2010-10-05 01:27:26
mysql,最新版本(我看到一些解决方案使用“output”作为那个工作,但我更喜欢避免漫步..) – yossi 2010-10-05 01:30:32