Встречается на собеседованиях • сегодня

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

Да, в PostgreSQL можно выполнить INSERT в несколько таблиц в рамках одной транзакции, но не одним SQL-запросом. Для этого используются:

  1. Транзакции (BEGIN/COMMIT):
python
BEGIN;
INSERT INTO table1 (col1) VALUES ('val1');
INSERT INTO table2 (col2) VALUES ('val2');
COMMIT;
  1. CTE (WITH запросы):
sql
WITH ins1 AS (
    INSERT INTO table1 (col1) VALUES ('val1') RETURNING id
)
INSERT INTO table2 (col2, table1_id) 
SELECT 'val2', id FROM ins1;
  1. Хранимые процедуры.

Важно: это разные подходы с разными особенностями. CTE позволяет использовать результат первого INSERT во втором, а транзакция гарантирует атомарность.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы