PostgreSQL ИЗМЕНИТЬ ТАБЛИЦУ: Добавить и переименовать столбец
⚡ Умное резюме
PostgreSQL Команда ALTER TABLE изменяет структуру существующей таблицы, позволяя добавлять или удалять столбцы, переименовывать столбец или всю таблицу, устанавливать значения по умолчанию и добавлять ограничения проверки без повторного создания объекта.

Что такое ALTER TABLE в PostgreSQL?
ALTER TABLE Команда используется для изменения структуры PostgreSQL Таблица. Это команда, используемая для изменения столбцов таблицы или имени самой таблицы без удаления.ping и воссоздать объект.
Синтаксис
Вот синтаксис для PostgreSQL Команда ИЗМЕНИТЬ ТАБЛИЦУ:
ALTER TABLE table-name action;
Параметр table-name — это имя таблицы, которую необходимо изменить. Параметр action — это действие, которое необходимо выполнить, например, изменить имя столбца или изменить тип данных столбца.
Описание
Команда ALTER TABLE изменяет определение существующей таблицы. Он принимает следующие подформы:
- ДОБАВИТЬ КОЛОНКУЭта команда использует синтаксис, аналогичный команде CREATE TABLE, для добавления нового столбца в таблицу.
- УДАЛИТЬ КОЛОНКУ: для каплиping Столбец таблицы. Ограничения и индексы, наложенные на столбцы, также будут удалены.
- УСТАНОВИТЬ/УДАЛИТЬ ПО УМОЛЧАНИЮИспользуется для установки или удаления значения по умолчанию для столбца. Изменение применяется только к последующим действиям. ВСТАВИТЬ операторы.
- УСТАНОВИТЬ/УДАЛИТЬ НЕ НУЛЬ: изменяет параметр, разрешает ли столбец значения NULL или нет.
- СТАТИСТИКА МНОЖЕСТВ: для установки целевого показателя сбора статистики для каждого столбца в операциях ANALYZE.
- ХРАНЕНИЕ КОМПЛЕКТА: для установки режима хранения столбца: встроенный или в дополнительной таблице.
- КОМПЛЕКТ БЕЗ ОИДОВИспользуется для удаления старого столбца OID из таблицы.
- ПЕРЕИМЕНОВАТЬ: для изменения имени таблицы или имени столбца.
- ДОБАВИТЬ table_constraintИспользуется для добавления нового ограничения к таблице. Синтаксис тот же, что и у . СОЗДАТЬ ТАБЛИЦУ команда.
- ОГРАНИЧЕНИЕ ОТКАЗАиспользуется для каплиping ограничение таблицы.
- ВЛАДЕЛЕЦ: для изменения владельца таблицы, последовательности, индекса или представления на определенного пользователя.
- Кластер: для пометки таблицы, которая будет использоваться для будущих операций кластера.
Изменение столбца
Столбец можно изменить несколькими способами. Такие изменения выполняются с помощью команды ALTER TABLE. Рассмотрим их подробнее ниже.
Добавление нового столбца
Чтобы добавить новый столбец в PostgreSQL table, команда ALTER TABLE используется со следующим синтаксисом:
ALTER TABLE table-name ADD new-column-name column-definition;
Table-name — это имя таблицы, которую нужно изменить. New-column-name — это имя нового столбца, который нужно добавить. Column-definition — это... тип данных новой колонки. См. таблицу «Книга», представленную ниже:
В таблице есть два столбца: id и name. Нам нужно добавить в таблицу новый столбец и назвать его author. Просто выполните следующую команду:
ALTER TABLE Book ADD author VARCHAR(50);
После выполнения указанной выше команды таблица Book теперь выглядит следующим образом:
Новый столбец был успешно добавлен.
Переименование столбца таблицы
Мы можем использовать команду ALTER TABLE, чтобы изменить имя столбца. В этом случае команда используется со следующим синтаксисом:
ALTER TABLE table-name RENAME COLUMN old-name TO new-name;
table-name — это имя таблицы, столбец которой нужно переименовать. old-name — это текущее имя столбца, а new-name — это новое имя столбца. Рассмотрим таблицу Book, показанную ниже:
Книга:
Нам нужно изменить название столбца author на book_author. Вот команда:
ALTER TABLE Book RENAME COLUMN author TO book_author;
После запуска команды мы можем просмотреть структуру таблицы:
Имя столбца было успешно изменено.
Установка значения по умолчанию для столбца
Мы можем установить значение по умолчанию для столбца, чтобы даже если вы не укажете значение для этого столбца во время операций INSERT, использовалось значение по умолчанию. В этом случае можно использовать команду ALTER TABLE со следующим синтаксисом:
ALTER TABLE table-name ALTER COLUMN column-name [SET DEFAULT value];
Table-name — это имя таблицы, столбец которой необходимо изменить. Column-name — это имя столбца, для которого необходимо установить значение по умолчанию, а value — это значение по умолчанию для этого столбца. Рассмотрим таблицу Book, приведенную ниже:
Нам нужно установить значение по умолчанию для столбца book_author. Мы можем запустить следующую команду:
ALTER TABLE Book ALTER COLUMN book_author SET DEFAULT 'Nicholas Samuel';
Теперь вставим строку в таблицу:
INSERT INTO Book (id, name) VALUES (6, 'PostgreSQL for Beginners');
Обратите внимание, что мы вставили значения только для двух столбцов: id и name. Однако для столбца book_author использовано значение по умолчанию:
Добавление проверочного ограничения
Проверочное ограничение помогает проверять записи, вставляемые в таблицу. Мы можем сделать это, объединив команду ALTER TABLE с оператором ADD CHECK. Синтаксис:
ALTER TABLE table-name ADD CHECK expression;
table-name — это имя таблицы, которую нужно изменить, а expression — это ограничение, которое нужно наложить на столбец таблицы. Давайте изменим столбец book_author таблицы Book так, чтобы он принимал только значения Nicholas и Samuel:
ALTER TABLE Book ADD CHECK (book_author IN ('Nicholas', 'Samuel'));
Теперь давайте попробуем вставить значение, отличное от Николаса или Сэмюэля, в столбец book_author таблицы Book:
INSERT INTO Book VALUES(7, 'лучших PostgreSQL Book', 'Gregory Bush');
Оператор вернет следующую ошибку:
Операция вставки не удалась, поскольку мы нарушили проверочное ограничение.
Переименование таблицы
Вот синтаксис команды ALTER TABLE для переименования таблицы:
ALTER TABLE table-name RENAME TO new-table-name;
table-name — это текущее имя таблицы, а new-table-name — это новое имя, которое будет присвоено таблице. Например, изменим имя таблицы Book на Books:
ALTER TABLE Book RENAME TO Books;
Использование pgAdmin
До сих пор действия выполнялись из SQL-оболочки. Теперь давайте посмотрим, как эти же действия можно выполнить визуально с помощью pgAdmin.
Добавление нового столбца
Шаг 1) Войдите в свою учетную запись pgAdmin.
Шаг 2)
- На панели навигации слева нажмите «Базы данных».
- Нажмите Демо.
Шаг 3) Введите запрос в редакторе запросов:
ALTER TABLE Book ADD author VARCHAR(50);
Шаг 4) Нажмите кнопку «Выполнить».
Шаг 5) Чтобы проверить, был ли добавлен столбец, выполните следующие действия:
- Нажмите «Базы данных» на панели навигации слева.
- Развернуть Демо.
- Разверните схемы.
- Развернуть Публикация.
- Разверните таблицы.
- Развернуть книгу.
- Развернуть столбцы.
Столбец должен был быть добавлен, как показано ниже:
Переименование столбца таблицы
Шаг 1) Войдите в свою учетную запись pgAdmin.
Шаг 2)
- На панели навигации слева нажмите «Базы данных».
- Нажмите Демо.
Шаг 3) Введите запрос в редакторе запросов:
ALTER TABLE Book RENAME COLUMN author TO book_author;
Шаг 4) Нажмите кнопку «Выполнить».
Шаг 5) Чтобы проверить, успешно ли были внесены изменения, разверните столбцы таблицы книг, как и раньше:
Столбцы теперь должны быть такими:
Столбец успешно изменен.
Установка значения по умолчанию для столбца
Шаг 1) Войдите в свою учетную запись pgAdmin.
Шаг 2)
- На панели навигации слева нажмите «Базы данных».
- Нажмите Демо.
Шаг 3) Введите запрос в редакторе запросов:
ALTER TABLE Book ALTER COLUMN book_author SET DEFAULT 'Nicholas Samuel';
Шаг 4) Нажмите кнопку «Выполнить».
Шаг 5) Для проверки выполните следующую команду в редакторе запросов:
INSERT INTO Book (id, name) VALUES (6, 'PostgreSQL for Beginners')
Шаг 6) Теперь мы можем запросить таблицу, чтобы проверить, было ли в столбце book_author вставлено значение по умолчанию:
Добавление проверочного ограничения
Шаг 1) Войдите в свою учетную запись pgAdmin.
Шаг 2)
- На панели навигации слева нажмите «Базы данных».
- Нажмите Демо.
Шаг 3) Введите запрос в редакторе запросов:
ALTER TABLE Book ADD CHECK (book_author IN ('Nicholas', 'Samuel'))
Шаг 4) Нажмите кнопку «Выполнить».
Шаг 5) Для проверки введите следующий запрос в редакторе запросов и нажмите кнопку «Выполнить»:
INSERT INTO Book VALUES(7, 'лучших PostgreSQL Book', 'Gregory Bush');
Он вернет следующее:
Переименование таблицы
Шаг 1) Войдите в свою учетную запись pgAdmin.
Шаг 2)
- На панели навигации слева нажмите «Базы данных».
- Нажмите Демо.
Шаг 3) Введите запрос в редакторе запросов:
ALTER TABLE Book RENAME TO Books;
Шаг 4) Нажмите кнопку «Выполнить».
Шаг 5) Чтобы проверить, была ли таблица переименована, разверните раздел Базы данных > Демонстрация > Схемы > Общедоступные > Таблицы:
Таблица успешно переименована.
Загрузите базу данных, используемую в этом руководстве.

























