sql-вставка в несколько таблиц в одном запросе

предполагая, что у меня есть две таблицы, names и phones и я хочу вставить данные из некоторого ввода в таблицы, в один запрос - как это можно сделать?

пожалуйста, если это можно сделать, объясните синтаксис.

3 ответов


MySQL не поддерживает вставку нескольких таблиц в одном вставить заявлением. Оракул-единственный, кто, как ни странно, знает об этом...

INSERT INTO NAMES VALUES(...)
INSERT INTO PHONES VALUES(...)

вы не можете. Однако, вы можете использовать сделки и оба они должны содержаться в одной транзакции.

START TRANSACTION;
INSERT INTO table1 VALUES ('1','2','3');
INSERT INTO table2 VALUES ('bob','smith');
COMMIT;

http://dev.mysql.com/doc/refman/5.1/en/commit.html


у меня была та же проблема. Я решаю это с помощью цикла 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, это хорошее решение.