ALTER TABLE
ALTER TABLE — изменить определение таблицы
Синтаксис
ALTER TABLE [ IF EXISTS ] [ ONLY ]имя
[ * ]действие
[, ... ] ALTER TABLE [ IF EXISTS ] [ ONLY ]имя
[ * ] RENAME [ COLUMN ]имя_столбца
TOновое_имя_столбца
ALTER TABLE [ IF EXISTS ] [ ONLY ]имя
[ * ] RENAME CONSTRAINTимя_ограничения
TOимя_нового_ограничения
ALTER TABLE [ IF EXISTS ]имя
RENAME TOновое_имя
ALTER TABLE [ IF EXISTS ]имя
SET SCHEMAновая_схема
ALTER TABLE ALL IN TABLESPACEимя
[ OWNED BYимя_роли
[, ... ] ] SET TABLESPACEновое_табл_пространство
[ NOWAIT ] ALTER TABLE [ IF EXISTS ]имя
ATTACH PARTITIONимя_секции
{ FOR VALUESуказание_границ_секции
| DEFAULT } ALTER TABLE [ IF EXISTS ]имя
DETACH PARTITIONимя_секции
[ CONCURRENTLY | FINALIZE ] Гдедействие
может быть следующим: ADD [ COLUMN ] [ IF NOT EXISTS ]имя_столбца
тип_данных
[ COLLATEправило_сортировки
] [ограничение_столбца
[ ... ] ] DROP [ COLUMN ] [ IF EXISTS ]имя_столбца
[ RESTRICT | CASCADE ] ALTER [ COLUMN ]имя_столбца
[ SET DATA ] TYPEтип_данных
[ COLLATEправило_сортировки
] [ USINGвыражение
] ALTER [ COLUMN ]имя_столбца
SET DEFAULTвыражение
ALTER [ COLUMN ]имя_столбца
DROP DEFAULT ALTER [ COLUMN ]имя_столбца
{ SET | DROP } NOT NULL ALTER [ COLUMN ]имя_столбца
DROP EXPRESSION [ IF EXISTS ] ALTER [ COLUMN ]имя_столбца
ADD GENERATED { ALWAYS | BY DEFAULT } AS IDENTITY [ (параметры_последовательности
) ] ALTER [ COLUMN ]имя_столбца
{ SET GENERATED { ALWAYS | BY DEFAULT } | SETпараметр_последовательности
| RESTART [ [ WITH ]перезапуск
] } [...] ALTER [ COLUMN ]имя_столбца
DROP IDENTITY [ IF EXISTS ] ALTER [ COLUMN ]имя_столбца
SET STATISTICSinteger
ALTER [ COLUMN ]имя_столбца
SET (атрибут
=значение
[, ... ] ) ALTER [ COLUMN ]имя_столбца
RESET (атрибут
[, ... ] ) ALTER [ COLUMN ]имя_столбца
SET STORAGE { PLAIN | EXTERNAL | EXTENDED | MAIN } ALTER [ COLUMN ]имя_столбца
SET COMPRESSIONметод_сжатия
ADDограничение_таблицы
[ NOT VALID ] ADDограничение_таблицы_по_индексу
ALTER CONSTRAINTимя_ограничения
[ DEFERRABLE | NOT DEFERRABLE ] [ INITIALLY DEFERRED | INITIALLY IMMEDIATE ] VALIDATE CONSTRAINTимя_ограничения
DROP CONSTRAINT [ IF EXISTS ]имя_ограничения
[ RESTRICT | CASCADE ] DISABLE TRIGGER [имя_триггера
| ALL | USER ] ENABLE TRIGGER [имя_триггера
| ALL | USER ] ENABLE REPLICA TRIGGERимя_триггера
ENABLE ALWAYS TRIGGERимя_триггера
DISABLE RULEимя_правила_перезаписи
ENABLE RULEимя_правила_перезаписи
ENABLE REPLICA RULEимя_правила_перезаписи
ENABLE ALWAYS RULEимя_правила_перезаписи
DISABLE ROW LEVEL SECURITY ENABLE ROW LEVEL SECURITY FORCE ROW LEVEL SECURITY NO FORCE ROW LEVEL SECURITY CLUSTER ONимя_индекса
SET WITHOUT CLUSTER SET WITHOUT OIDS SET TABLESPACEновое_табл_пространство
SET { LOGGED | UNLOGGED } SET (параметр_хранения
[=значение
] [, ... ] ) RESET (параметр_хранения
[, ... ] ) INHERITтаблица_родитель
NO INHERITтаблица_родитель
OFимя_типа
NOT OF OWNER TO {новый_владелец
| CURRENT_ROLE | CURRENT_USER | SESSION_USER } REPLICA IDENTITY { DEFAULT | USING INDEXимя_индекса
| FULL | NOTHING } иуказание_границ_секции
: IN (выражение_границ_секции
[, ...] ) | FROM ( {выражение_границ_секции
| MINVALUE | MAXVALUE } [, ...] ) TO ( {выражение_границ_секции
| MINVALUE | MAXVALUE } [, ...] ) | WITH ( MODULUSчисловая_константа
, REMAINDERчисловая_константа
) иограничение_столбца
: [ CONSTRAINTимя_ограничения
] { NOT NULL | NULL | CHECK (выражение
) [ NO INHERIT ] | DEFAULTвыражение_по_умолчанию
| GENERATED ALWAYS AS (генерирующее_выражение
) STORED | GENERATED { ALWAYS | BY DEFAULT } AS IDENTITY [ (параметры_последовательности
) ] | UNIQUEпараметры_индекса
| PRIMARY KEYпараметры_индекса
| REFERENCESцелевая_таблица
[ (целевой_столбец
) ] [ MATCH FULL | MATCH PARTIAL | MATCH SIMPLE ] [ ON DELETEссылочное_действие
] [ ON UPDATEссылочное_действие
] } [ DEFERRABLE | NOT DEFERRABLE ] [ INITIALLY DEFERRED | INITIALLY IMMEDIATE ] иограничение_таблицы
: [ CONSTRAINTимя_ограничения
] { CHECK (выражение
) [ NO INHERIT ] | UNIQUE (имя_столбца
[, ... ] )параметры_индекса
| PRIMARY KEY (имя_столбца
[, ... ] )параметры_индекса
| EXCLUDE [ USINGиндексный_метод
] (элемент_исключения
WITHоператор
[, ... ] )параметры_индекса
[ WHERE (предикат
) ] | FOREIGN KEY (имя_столбца
[, ... ] ) REFERENCESцелевая_таблица
[ (целевой_столбец
[, ... ] ) ] [ MATCH FULL | MATCH PARTIAL | MATCH SIMPLE ] [ ON DELETEссылочное_действие
] [ ON UPDATEссылочное_действие
] } [ DEFERRABLE | NOT DEFERRABLE ] [ INITIALLY DEFERRED | INITIALLY IMMEDIATE ] иограничение_таблицы_по_индексу
: [ CONSTRAINTимя_ограничения
] { UNIQUE | PRIMARY KEY } USING INDEXимя_индекса
[ DEFERRABLE | NOT DEFERRABLE ] [ INITIALLY DEFERRED | INITIALLY IMMEDIATE ]параметры_индекса
в ограниченияхUNIQUE
,PRIMARY KEY
иEXCLUDE
: [ INCLUDE (имя_столбца
[, ... ] ) ] [ WITH (параметр_хранения
[=значение
] [, ... ] ) ] [ USING INDEX TABLESPACEтабл_пространство
]элемент_исключения
в ограниченииEXCLUDE
: {имя_столбца
| (выражение
) } [класс_операторов
] [ ASC | DESC ] [ NULLS { FIRST | LAST } ]
Описание
Расширение Shardman синтаксиса команды ALTER TABLE
позволяет последовательно изменять определения сегментированных и глобальных таблиц.
Набор операций ALTER
, поддерживаемых для глобальных и сегментированных таблиц, ограничен. Подробнее см. Ограничения ALTER TABLE
.
Параметры
Параметры хранения
Shardman добавляет к параметрам хранения таблиц собственные метапараметры хранения. Они не сохраняются в соответствующей записи каталога, а используются для указания расширению Shardman выполнить некоторые дополнительные действия.
-
global
Данный параметр можно указать только для глобальных таблиц. Если установлено значение 0, глобальная таблица будет преобразована в обычную в группе репликации, где выполняется команда. После завершения этого оператора глобальная таблица не будет существовать на других узлах. Никакой другой параметр хранения не может быть установлен, если указан параметр
global
.
Примеры
Создайте глобальную таблицу pgbench_tellers
, а затем преобразуйте её в локальную.
CREATE TABLE pgbench_tellers ( tid integer PRIMARY KEY, bid integer, tbalance integer, filler character(84) ) WITH (global); ALTER TABLE pgbench_tellers SET (global=0);