INSERT - додавання даних
Базовий синтаксис INSERT
Команда INSERT додає нові записи в таблицю:
INSERT INTO table_name (column1, column2, column3)
VALUES (value1, value2, value3); Додавання одного запису
INSERT INTO users (name, email, age)
VALUES ('Петро Іваненко', 'petro@example.com', 29); Порада: Завжди вказуй список колонок явно.
Це робить код зрозумілішим та захищає від помилок при зміні структури таблиці.
Додавання кількох записів
INSERT INTO users (name, email, age)
VALUES
('Петро Іваненко', 'petro@example.com', 29),
('Світлана Коваль', 'svitlana@example.com', 35),
('Дмитро Бойко', 'dmytro@example.com', 27); INSERT з DEFAULT
Якщо колонка має значення за замовчуванням:
INSERT INTO products (name, price)
VALUES ('Новий товар', 100);
-- category отримає значення DEFAULT (якщо є) INSERT з RETURNING
PostgreSQL дозволяє отримати дані щойно доданого запису:
INSERT INTO users (name, email, age)
VALUES ('Новий користувач', 'new@example.com', 25)
RETURNING id, name; Це особливо корисно для отримання автоматично згенерованого id.
INSERT з SELECT
Можна вставляти дані з іншого запиту:
INSERT INTO archive_users (name, email)
SELECT name, email FROM users WHERE age > 60; Обробка конфліктів (UPSERT)
PostgreSQL підтримує ON CONFLICT для обробки дублікатів:
INSERT INTO users (email, name, age)
VALUES ('existing@example.com', 'Updated Name', 30)
ON CONFLICT (email) DO UPDATE SET name = EXCLUDED.name; Практика
Спробуй в SQL пісочниці:
INSERT INTO users (name, email, age) VALUES ('Test User', 'test@test.com', 20);SELECT * FROM users;- перевір, що запис додано