PRIMARY KEY
Уникальный идентификатор строки. Автоматически создаёт уникальный индекс, не допускает NULL.
id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY -- или PRIMARY KEY (col1, col2) -- составной
Объяснение
Пример
-- Современный вариант CREATE TABLE products ( id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, name TEXT NOT NULL ); -- Составной ПК CREATE TABLE order_items ( order_id BIGINT REFERENCES orders(id), product_id BIGINT REFERENCES products(id), PRIMARY KEY (order_id, product_id) );
Связанные термины
Анекдоты по теме
— Чем TRUNCATE отличается от DELETE? — DELETE логирует каждую строку и может быть в транзакции. — TRUNCATE удаляет всё разом, не логируя строки. Быстрее. — Но TRUNCATE нельзя откатить? — В PostgreSQL можно — TRUNCATE транзакционный. — В MySQL? — Там TRUNCATE автоматически фиксирует транзакцию. Осторожно.
— Что такое SQL тремя словами? — Спроси у таблицы. — А если сложнее? — Дай мне данные. — А если ещё сложнее? — Соедини эти две таблицы аккуратно.
— Что такое идемпотентность в контексте SQL? — Запрос, который можно выполнить несколько раз с тем же результатом. — Пример? — INSERT ... ON CONFLICT DO NOTHING. Первый раз вставляет, второй — ничего не делает. — А обычный INSERT? — Создаст дубликат или упадёт с ошибкой.