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