DDL / СхемаСредний
ALTER TABLE
Изменяет структуру существующей таблицы: добавляет колонки, меняет типы, добавляет ограничения.
Синтаксис
ALTER TABLE table
ADD COLUMN col type [constraints];
DROP COLUMN col;
ALTER COLUMN col TYPE new_type;
ADD CONSTRAINT name CHECK (condition);Объяснение
ALTER TABLE — основная команда для изменения схемы. В PostgreSQL DDL транзакционен — можно откатить.
Осторожно в production:
- ADD COLUMN с NOT NULL DEFAULT — мгновенно с PostgreSQL 11+
- ALTER COLUMN TYPE — перезаписывает всю таблицу, долгая блокировка
- Для больших таблиц используй zero-downtime стратегии
Пример
-- Добавить колонку (быстро в PG11+)
ALTER TABLE users ADD COLUMN phone TEXT;
-- Добавить CHECK constraint
ALTER TABLE products
ADD CONSTRAINT price_positive CHECK (price > 0);
-- Переименовать колонку
ALTER TABLE users RENAME COLUMN fullname TO full_name;Связанные термины
Анекдоты по теме
— Почему NOT NULL — это как строгий родитель? — Потому что не даёт пропускать пустые места. «Ты заполнишь это поле, иначе я выдам ошибку!»
— Зачем нужен AS в SQL? — Чтобы дать временное имя. Как прозвище. Таблица остаётся «Иванов Иван», а ты её называешь «i» — и всем понятно.
— Что самое страшное в SQL? — DELETE FROM orders; — А что второе по страшности? — UPDATE orders SET price = 0;