PostgreSQL ALTER TABLE
ALTER TABLE
Оператор PostgreSQL ALTER TABLE используется для изменения определения или структуры существующей таблицы. Действие, которое должно быть выполнено этим утверждением, следующее:
- Столбцы могут быть добавлены.
- Ограничения могут быть добавлены.
- Столбцы могут быть удалены. Если индексы и любые ограничения таблиц, связанные с включенным столбцом, будут автоматически удалены. Если на таблицу ссылается другая таблица, можно использовать CASCADE.
- Тип данных столбца (столбцов) может быть изменен, и соответствующие индексы и ограничения будут автоматически преобразованы в новый тип столбца.
- Значение по умолчанию для столбца можно удалить.
использование
Код:
ALTER TABLE table_name
[action ...]
Где действие:
ДОБАВИТЬ [КОЛОННА]
DROP [КОЛОННА]
ALTER [КОЛОННА] [SET | DROP] DEFAULT
ALTER [КОЛОННА] [SET | DORP] НЕ NULL
ДОБАВИТЬ ОГРАНИЧЕНИЕ
PostgreSQL ALTER TABLE пример
Давайте рассмотрим таблицы заказов.
SQL
Код:
CREATE TABLE orders(
ord_no integer PRIMARY KEY,
ord_date date NOT NULL,
cus_name character(25) NOT NULL,
item_code integer NOT NULL,
item_grade character(1)NOT NULL DEFAULT 'A',
vendor_code numeric NOT NULL,
city character(15),
ord_qty numeric DEFAULT 1 CHECK(ord_qty>0 AND ord_qty<50),
ord_amount numeric,
advance_amount numeric DEFAULT 2000,
date_to_disb date NOT NULL CHECK(date_to_disb>ord_date)
);
Структура таблицы
Словарь данных
Добавить столбец
Если мы хотим добавить столбец с именем vendor_name типа varchar в таблицу заказов, можно использовать следующий SQL -
ALTER TABLE orders ADD COLUMN
vendor_name varchar(25);
Оставить столбец
Если мы хотим удалить столбец vendor_name из таблицы заказов, можно использовать следующий SQL -
ALTER TABLE orders DROP COLUMN
vendor_name;
Изменить тип столбца
Если мы хотим изменить тип столбца cus_name и city с символьного на varchar в таблице заказов, можно использовать следующий SQL -
ALTER TABLE orders
ALTER COLUMN cus_name TYPE varchar(25),
ALTER COLUMN city TYPE varchar(25);
Переименовать столбец
Если мы хотим изменить имя столбца city на vendor_city в таблице заказов, можно использовать следующий SQL -
ALTER TABLE orders
RENAME COLUMN city TO vendor_city;
Переименовать таблицу
Если мы хотим изменить имя существующей таблицы, можно использовать следующий SQL -
ALTER TABLE orders RENAME TO neworders;
Добавить ограничение NOT NULL
Если мы хотим добавить ограничение NOT NULL в столбец city в таблице заказов, можно использовать следующий SQL -
ALTER TABLE orders ALTER COLUMN city SET NOT NULL;
Удалить ограничение NOT NULL
Если мы хотим удалить ограничение NOT NULL из столбца city в таблице заказов, можно использовать следующий SQL -
ALTER TABLE orders ALTER COLUMN city DROP NOT NULL;
Добавить ограничение CHECK
Если мы хотим добавить проверочное ограничение в таблицу заказов и все ее потомки, можно использовать следующий SQL:
ALTER TABLE orders ADD CONSTRAINT chkamount CHECK (ord_amount>=10000);
Удалить ограничение CHECK
Если мы хотим удалить проверочное ограничение chkamount из таблицы заказов и все его дочерние элементы, можно использовать следующий SQL -
ALTER TABLE orders DROP CONSTRAINT chkamount;
Удалить ограничение CHECK только из родительской таблицы
Если мы хотим удалить проверочное ограничение chkamount из таблицы заказов и все его дочерние элементы, можно использовать следующий SQL -
ALTER TABLE ONLY orders DROP CONSTRAINT chkamount;
Добавить УНИКАЛЬНОЕ ограничение
Если мы хотим добавить уникальное ограничение item_vendor_ukey в таблицу заказов, можно использовать следующий SQL -
ALTER TABLE orders
ADD CONSTRAINT item_vendor_ukey
UNIQUE (item_code,vendor_code);
Удалить УНИКАЛЬНОЕ ограничение
Если мы хотим удалить уникальное ограничение из таблицы заказов, можно использовать следующий SQL -
ALTER TABLE orders
DROP CONSTRAINT item_vendor_ukey;
Добавьте ограничение PRIMARY KEY
Если мы хотим добавить ограничение первичного ключа в таблицу заказов, можно использовать следующий SQL. Для таблицы разрешен только один первичный ключ. Итак, мы должны предположить, что у нас нет предварительно определенного первичного ключа в таблице, которую мы собираемся использовать.
ALTER TABLE orders ADD PRIMARY KEY (ord_no);
Добавить ограничение FOREIGN KEY
Если мы хотим добавить ограничение внешнего ключа в таблицу заказов, можно использовать следующий SQL. Предположим , что у нас есть таблица поставщиков и содержит столбец vendor_code с таким же типом данных, что и в таблице заказов.
ALTER TABLE orders
ADD CONSTRAINT vend_code_fkey
FOREIGN KEY (vendor_code) REFERENCES vendors;
Предыдущая:
CONSTRAINT
Следующий:
ВЫБЕРИТЕ заявление
Новый контент: Composer: менеджер зависимостей для PHP , R программирования