Можно ли вставить в две таблицы с одинаковой командой вставки?
Можно ли вставлять в две таблицы с одной операцией sql?
Ответ 1
Нет, вы не можете выполнять несколько вставок в две таблицы в одном запросе.
Ответ 2
Нет, вы не можете.
Если вы хотите обеспечить атомарность операции, которая требует, чтобы данные были вставлены в 2 таблицы, вы должны защитить ее в транзакции. Вы либо используете операторы SQL BEGIN TRAN
и COMMIT TRAN
, либо используете границу транзакции на любом языке, который вы используете для разработки уровня доступа к базе данных. Например. что-то вроде Connection.StartTransaction
и Connection.Commit
(или Connection.Rollback
при ошибке).
Ответ 3
Вы можете вызвать хранимую процедуру со вставками в две таблицы.
Ответ 4
Возможно, в будущей версии MySQL вы можете создать представление, содержащее 2 таблицы, и вставить в него.
Но с MySQL 5.1.41 вы получите сообщение об ошибке:
"Невозможно изменить более одной базовой таблицы через представление соединения"
Но вставка в 2 таблицы с 1 запросом - это странная вещь, и я не рекомендую ее.
Дополнительные сведения об обновляемых представлениях см. В ссылка MySQL.