Как сделать INSERT в две таблицы в одном запросе?

Для выполнения операции INSERT в две таблицы в одном запросе в MySQL используется оператор INSERT INTO с дополнительным ключевым словом VALUES или SELECT.

Существует несколько способов выполнения INSERT в две таблицы. Вот некоторые из них:

1. Используя оператор VALUES:

Для этого необходимо создать два оператора INSERT INTO и указать значения для вставки в каждую таблицу. Затем объедините оба оператора с помощью ключевого слова UNION ALL, чтобы выполнить их в одном запросе. Важно помнить, что количество столбцов и значения должны соответствовать для каждой таблицы.

Пример:

INSERT INTO table1 (col1, col2) VALUES ('value1', 'value2')
UNION ALL
INSERT INTO table2 (col3, col4) VALUES ('value3', 'value4')

2. Используя оператор SELECT:

Вы можете использовать оператор SELECT для выборки значений из существующей таблицы или генерирования новых значений, которые затем будут вставлены в две таблицы. В этом случае укажите столбцы, в которые вы хотите вставить значения, после ключевого слова SELECT.

Пример:

INSERT INTO table1 (col1, col2) SELECT col3, col4 FROM table2 WHERE condition

В этом примере значения столбцов col3 и col4 из таблицы table2 будут вставлены в столбцы col1 и col2 таблицы table1 в соответствии с определенным условием.

Оба способа могут быть полезны в различных сценариях. Однако важно учесть, что для выполнения INSERT в две таблицы в одном запросе должны быть установлены соответствующие связи между таблицами, такие как внешние ключи.