SQLLab
Теория· 10 мин· 15 XP

INSERT и RETURNING

sql
-- Одна строка
INSERT INTO categories (name, parent_id)
VALUES ('Планшеты', 1);

-- Несколько строк
INSERT INTO categories (name, parent_id) VALUES
('Наушники', 1),
('Умные часы', 1);

RETURNING: получаем результат вставки

RETURNING возвращает строки, которые были вставлены. Это удобно для получения автогенерированных ID:

sql
INSERT INTO categories (name, parent_id)
VALUES ('Планшеты', 1)
RETURNING id, name, parent_id;

Вы получите строку с реальным id, который PostgreSQL присвоил записи.

INSERT ... ON CONFLICT

sql
INSERT INTO customers (email, first_name, last_name, city)
VALUES ('user@mail.ru', 'Иван', 'Иванов', 'Москва')
ON CONFLICT (email) DO NOTHING;

Если email уже существует — вставка игнорируется.

Практика

В следующем уроке вы попрактикуетесь с INSERT ... RETURNING.

Важно для тренажёра: все DML-задания используют RETURNING, чтобы тренажёр мог сравнить результаты выполнения запроса с эталонным.

Прочитайте урок до конца — прогресс засчитается автоматически