Можно ли вставлять в две таблицы с одной операцией 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.