Можно ли выполнить одновременно обновление/вставку данных в нескольких таблицах одним запросом?

Каким образом можно создать запрос для одновременного обновления данных в таблицах global и users или создания новых записей, учитывая автоматическую генерацию значения id в таблице global, и связь id с таблицей users?
  • 21 марта 2024 г. 17:39
Ответы на вопрос 2
Да, можно выполнить одновременно обновление/вставку данных в нескольких таблицах одним запросом используя транзакции в SQL.

Для одновременного обновления данных в таблицах global и users, или создания новых записей с автоматической генерацией значения id в таблице global и связью id с таблицей users, можно воспользоваться следующим скриптом:

```sql
START TRANSACTION;

INSERT INTO global (data) VALUES ('some_data');
SET @global_id = LAST_INSERT_ID();

INSERT INTO users (global_id, name) VALUES (@global_id, 'user1');

COMMIT;
```

В данном примере мы создаем новую запись в таблице global с данными 'some_data' и сохраняем автоматически сгенерированный id этой записи в переменную @global_id. Затем мы используем это значение id при создании новой записи в таблице users с именем 'user1'. После выполнения всех операций мы фиксируем изменения с помощью COMMIT, чтобы сохранить их в базе данных.
транзакция
Похожие вопросы