PostgreSQL ПРОМЯНА НА ТАБЛИЦА: Добавяне и преименуване на колона
⚡ Умно обобщение
PostgreSQL ALTER TABLE променя структурата на съществуваща таблица, което ви позволява да добавяте или премахвате колони, да преименувате колона или цялата таблица, да задавате стойности по подразбиране и да прикачвате ограничения за проверка, без да пресъздавате обекта.

Какво е ALTER TABLE в PostgreSQL?
- ALTER TABLE Командата се използва за промяна на структурата на PostgreSQL таблица. Това е командата, използвана за промяна на колоните на таблицата или името на самата таблица, без да се премахваping и пресъздаване на обекта.
Синтаксис
Ето синтаксиса за PostgreSQL Команда ALTER TABLE:
ALTER TABLE table-name action;
Параметърът „име на таблица“ е името на таблицата, която трябва да промените. Параметърът „действие“ е действието, което трябва да извършите, като например промяна на името на колона или промяна на типа данни на колона.
Descriptйон
Командата ALTER TABLE променя дефиницията на съществуваща таблица. Той приема следните подформи:
- ДОБАВЯНЕ НА КОЛОНА: това използва подобен синтаксис като командата CREATE TABLE за добавяне на нова колона към таблица.
- ПУСКАНЕ НА КОЛОНА: за капкаping колона от таблица. Ограниченията и индексите, наложени на колоните, също ще бъдат премахнати.
- ЗАДАВАНЕ/ИЗПУСКАНЕ ПО ПОДРАЗБИРАНЕ: използва се за задаване или премахване на стойността по подразбиране за колона. Промяната се прилага само за следващите INSERT изрази.
- SET/DROP NOT NULL: променя дали колоната ще позволява нули или не.
- ЗАДАВАНЕ НА СТАТИСТИКИ: за задаване на целта за събиране на статистически данни за всяка колона за операции ANALYZE.
- НАСТРОЙКА СЪХРАНЕНИЕ: за задаване на режима на съхранение на колона, независимо дали е вградена или в допълнителна таблица.
- КОМПЛЕКТ БЕЗ ОИДИ: използва се за премахване на старата OID колона от таблицата.
- ПРЕИМЕНУВАНЕ: за промяна на името на таблицата или името на колона.
- ДОБАВЕТЕ table_constraint: използва се за добавяне на ново ограничение към таблица. Използва същия синтаксис като СЪЗДАЙТЕ МАСА команда.
- ОГРАНИЧЕНИЕ НА КАПАНЕТО: използва се за пусканеping ограничение на таблицата.
- СОБСТВЕНИК: за промяна на собственика на таблица, последователност, индекс или изглед на определен потребител.
- CLUSTER: за маркиране на таблица, която да се използва за бъдещи клъстерни операции.
Промяна на колона
Колоната може да бъде променена по редица начини. Такива промени се извършват с помощта на командата ALTER TABLE. Нека ги обсъдим по-долу.
Добавяне на нова колона
За да добавите нова колона към a PostgreSQL таблица, командата ALTER TABLE се използва със следния синтаксис:
ALTER TABLE table-name ADD 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;
Името на таблицата е името на таблицата, чиято колона ще бъде преименувана. Старото име е текущото име на колоната, а новото име е новото име на колоната. Разгледайте таблицата 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];
„Име на таблица“ е името на таблицата, чиято колона ще бъде променена. „Име на колона“ е името на колоната, чиято стойност по подразбиране ще бъде зададена, а „стойността“ е стойността по подразбиране за колоната. Разгледайте таблицата „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;
Името на таблицата е името на таблицата, която ще бъде променена, а изразът е ограничението, което ще бъде наложено на колоната на таблицата. Нека модифицираме колоната book_author на таблицата Book, така че да приема само стойностите Nicholas и Samuel:
ALTER TABLE Book ADD CHECK (book_author IN ('Nicholas', 'Samuel'));
Сега нека се опитаме да вмъкнем стойност, различна от Nicholas или Samuel, в колоната book_author на таблицата Book:
INSERT INTO Book VALUES(7, 'Best PostgreSQL Book', 'Gregory Bush');
Изявлението ще върне следната грешка:
Операцията за вмъкване е неуспешна, защото нарушихме ограничението за проверка.
Преименуване на таблица
Ето синтаксиса на командата ALTER TABLE за преименуване на таблица:
ALTER TABLE table-name RENAME TO new-table-name;
Името на таблицата е текущото име на таблицата, а новото име на таблицата е новото име, което ще бъде присвоено на таблицата. Например, нека променим името на таблицата „Книга“ на „Книги“:
ALTER TABLE Book RENAME TO Books;
Използване на pgAdmin
Досега действията бяха изпълнявани от SQL shell. Сега нека видим как същите тези действия могат да се изпълнят визуално, използвайки pgAdmin.
Добавяне на нова колона
Стъпка 1) Влезте във вашия pgAdmin акаунт.
Стъпка 2)
- От лентата за навигация вляво щракнете върху Бази данни.
- Щракнете върху Демо.
Стъпка 3) Въведете заявката в редактора на заявки:
ALTER TABLE Book ADD author VARCHAR(50);
Стъпка 4) Щракнете върху бутона Изпълнение.
Стъпка 5) За да проверите дали колоната е добавена, направете следното:
- Щракнете върху Бази данни от лявата навигация.
- Разширяване на демонстрацията.
- Разгънете схеми.
- Разширете Public.
- Разгъване на таблици.
- Разширете книгата.
- Разгъване на колони.
Колоната трябва да бъде добавена, както е показано по-долу:
Преименуване на колона на таблица
Стъпка 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, 'Best PostgreSQL Book', 'Gregory Bush');
Ще върне следното:
Преименуване на таблица
Стъпка 1) Влезте във вашия pgAdmin акаунт.
Стъпка 2)
- От лентата за навигация вляво щракнете върху Бази данни.
- Щракнете върху Демо.
Стъпка 3) Въведете заявката в редактора на заявки:
ALTER TABLE Book RENAME TO Books;
Стъпка 4) Щракнете върху бутона Изпълнение.
Стъпка 5) За да проверите дали таблицата е преименувана, разгънете Бази данни > Демо > Схеми > Публични > Таблици:
Таблицата беше преименувана успешно.
Изтеглете базата данни, използвана в този урок

























