ALTER TABLE
Изменение структуры таблицы.
DSQL, ESQL.
ALTER TABLE tablename <operation> [, <operation>]; <operation> ::= ADD <col_def> | ADD <tconstraint> | DROP colname | DROP CONSTRAINT constr_name | DROP SQL SECURITY | ALTER [COLUMN] colname <col_mod> | ALTER SQL SECURITY {DEFINER | INVOKER} | {ENABLE | DISABLE} PUBLICATION <col_def> ::= <regular_col_def> | <computed_col_def> | <identity_col_def> <regular_col_def> ::= colname { <datatype> | domainname } [DEFAULT {literal | NULL | <context_var>}] [NOT NULL] [<col_constraint>] [COLLATE collation_name] <computed_col_def> ::= colname [<datatype>] {COMPUTED [BY] | GENERATED ALWAYS AS} (<expression>) <identity_col_def> ::= colname [<datatype>] {ALWAYS | GENERATED BY} DEFAULT AS IDENTITY [(START WITH startvalue)] [<col_constraint>] <col_mod> ::= TO newname | POSITION newpos | <regular_col_mod> | <computed_col_mod> | <identity_col_mod> <regular_col_mod> ::= | TYPE { <datatype> | domain_name } | SET DEFAULT {literal | NULL | <context_var>} | DROP DEFAULT | SET NOT NULL | DROP NOT NULL <computed_col_mod> ::= [TYPE <datatype>] {GENERATED ALWAYS AS | COMPUTED [BY]} (<expression>) <identity_col_mod> ::= <alter identity column option> ... | SET GENERATED { ALWAYS | BY DEFAULT } [<alter identity column option> ...] | DROP INDENITY <alter identity column option> ::= RESTART [ WITH startvalue ] | SET INCREMENT [BY] incrementvalue <datatype> ::= <scalar_datatype> | <blob_datatype> | <array_datatype> <scalar_datatype> ::= См. Синтаксис скалярных типов данных <blob_datatype> ::= См. Синтаксис типа данных BLOB <array_datatype> ::= См. Синтаксис массивов <col_constraint> ::= [CONSTRAINT constr_name] { UNIQUE [<using_index>] | PRIMARY KEY [<using_index>] | REFERENCES other_table [(other_col)] [ON DELETE { NO ACTION | CASCADE | SET DEFAULT | SET NULL}] [ON UPDATE { NO ACTION | CASCADE | SET DEFAULT | SET NULL}] [<using_index>] | CHECK (<check_condition>) } <tconstraint> ::= [CONSTRAINT constr_name] { UNIQUE (<col_list>) [<using_index>] | PRIMARY KEY (<col_list>) [<using_index>] | FOREIGN KEY (<col_list>) REFERENCES other_table [(<col_list>)] [ON DELETE { NO ACTION | CASCADE | SET DEFAULT | SET NULL}] [ON UPDATE { NO ACTION | CASCADE | SET DEFAULT | SET NULL}] [<using_index>] | CHECK (<check_condition>) } <col_list> ::= colname [, colname ...] <using_index> ::= USING [ASC[ENDING] | DESC[ENDING]] INDEX indexname <check_condition> ::= <val> <operator> <val> | <val> [NOT] BETWEEN <val> AND <val> | <val> [NOT] IN (<val> [, <val> ...] | <select_list>) | <val> IS [NOT] NULL | <val> IS [NOT] DISTINCT <val> | <val> IS [NOT] {TRUE | FALSE | UNKNOWN} | <val> [NOT] CONTAINING <val> | <val> [NOT] STARTING [WITH] <val> | <val> [NOT] LIKE <val> [ESCAPE <val>] | <val> [NOT] SIMILAR TO <val> [ESCAPE <val>] | <val> <operator> {ALL | SOME | ANY} (<select_list>) | [NOT] EXISTS (<select_expr>) | [NOT] SINGULAR (<select_expr>) | (<check_condition>) | NOT <check_condition> | <check_condition> OR <check_condition> | <check_condition> AND <check_condition> <operator> ::= <> | != | ^= | ~= | = | < | > | <= | >= | !< | ^< | ~< | !> | ^> | ~> <val> ::= colname [[<array_idx> [, <array_idx> ...]]] | literal | <context_var> | <expression> | NULL | NEXT VALUE FOR genname | GEN_ID(genname, <val>) | CAST(<val> AS <datatype>) | (<select_one>) | func(<val> [, <val> ...]) <cast_type> ::= <datatype> | [TYPE OF] domain_name | TYPE OF COLUMN rel.colname
Параметр | Описание |
---|---|
tablename |
Имя таблицы. |
operation |
Одна из допустимых операций по изменению структуры таблицы. |
colname |
Имя столбца таблицы, может содержать до 63 символов.Должно быть уникальным внутри таблицы. |
newname |
Новое имя столбца таблицы, может содержать до 63 символов.Должно быть уникальным внутри таблицы. |
gencolname |
Имя вычисляемого столбца таблицы. |
idencolname |
Имя столбца идентификации. |
newpos |
Новая позиция столбца в таблице.Целое число в диапазоне от 1 до количества столбцов таблицы. |
datatype |
Тип данных SQL. |
domain_name |
Имя домена. |
startvalue |
Начальное значение столбца идентификации. |
incrementvalue |
Значение приращения для столбца идентификации.Должно быть отлично от 0. |
col_constraint |
Ограничение столбца. |
tconstraint |
Ограничение таблицы. |
constr_name |
Имя ограничения, может содержать до 63 символов. |
other_table |
Имя таблицы, на которую ссылается внешний ключ. |
other_col |
Столбец таблицы, на которую ссылается внешний ключ. |
using_index |
Позволяет задать имя автоматически создаваемого индекса для ограничения, и опционально определить, какой это будет индекс — по возрастанию (по умолчанию) или по убыванию. |
literal |
Литерал. |
context_var |
Любая контекстная переменная, тип которой совместим с типом данных столбца. |
check_condition |
Условие проверки ограничения.Выполняется, если оценивается как |
collation_name |
Имя порядка сортировки.Необходимо указывать если вы хотите чтобы порядок сортировки для столбца отличался от порядка сортировки для набора символов по умолчанию этого столбца. |
select_one |
Оператор |
select_list |
Оператор |
select_expr |
Оператор |
experssion |
Выражение. |
genname |
Имя последовательности (генератора). |
func |
Скалярная функция. |
Оператор ALTER TABLE
изменяет структуру существующей таблицы.Одиночный оператор ALTER TABLE
позволяет производить множество операций добавления/удаления столбцов и ограничений, а также модификаций столбцов.Список операций выполняемых при модификации таблицы разделяется запятой.