Иллюстрированный самоучитель по PostgreSQL

ALTER TABLE

Новые поля создаются секцией ADD COLUMN с таким же синтаксисом, как при создании таблицы командой CREATE TABLE (см. описание команды CREATE TABLE). Чтобы изменить или удалить значение по умолчанию для поля, воспользуйтесь секцией ALTER COLUMN с подсекциями SET DEFAULT или DROP DEFAULT (помните, что значения по умолчанию применяются только к вновь созданным полям и не распространяются на существующие поля).

PostgreSQL 7.1.x не позволяет задать значение по умолчанию или ограничение для поля одновременно с его созданием в секции ADD COLUMN. Тем не менее секция SET DEFAULT команды ALTER TABLE может использоваться для определения значений по умолчанию после создания поля. Если значение по умолчанию задается после того, как таблица использовалась в течение некоторого времени, не забудьте обновить содержимое поля командой UPDATE.

Примечание
Чтобы модифицировать таблицу, необходимо быть ее владельцем или суперпользователем
.

Примеры

Следующая команда включает в таблицу employees новое поле address типа text:

booktown=# ALTER TABLE employees ADD COLUMN address text;
ALTER

Затем созданное поле address переименовывается в mailing_address:

booktown=# ALTER TABLE employees RENAME COLUMN address TO mailing_address;
ALTER

Переименование таблицы employees в personnel:

booktown=# ALTER TABLE employees RENAME TO personnel;
ALTER

Следующая команда назначает новым владельцем таблицы personnel пользователя PostgreSQL с именем Jonathan:

booktown=# ALTER TABLE personnel OWNER TO Jonathan:
ALTER

Наконец, следующая команда устанавливает для таблицы schedules ограничение внешнего ключа с именем valid_employee, проверяющее присутствие поля id в таблице personnel:

booktown=# ALTER TABLE schedules ADD CONSTRAINT valid_employee
booktown-# FOREIGN KEY (employeejd)
booktown-# REFERENCES personnel (id) MATCH FULL;
NOTICE: ALTER TABLE… ADD CONSTRAINT will create implicit trigger(s) for
FOREIGN KEY check(s)
CREATE
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.