Можно ли сделать INSERT в несколько таблиц в рамках одного запроса в PostgreSQL

Python Middle Arendadata
Можно ли сделать INSERT в несколько таблиц в рамках одного запроса в PostgreSQL
Ответы
Да, в PostgreSQL можно выполнить INSERT в несколько таблиц в рамках одной транзакции, но не одним SQL-запросом. Для этого используются: - Транзакции (BEGIN/COMMIT): ``` BEGIN; INSERT INTO table1 (col1) VALUES ('val1'); INSERT INTO table2 (col2) VALUES ('val2'); COMMIT; ``` - CTE (WITH запросы): ``` WITH ins1 AS ( INSERT INTO table1 (col1) VALUES ('val1') RETURNING id ) INSERT INTO table2 (col2, table1_id) SELECT 'val2', id FROM ins1; ``` - Хранимые процедуры. Важно: это разные подходы с разными особенностями. CTE позволяет использовать результат первого INSERT во втором, а транзакция гарантирует атомарность.