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 STATISTICSintegerALTER [ 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);