ALTER TABLE ... предложение COLUMN
Область применения: Databricks SQL Databricks Runtime
Добавляет, изменяет или удаляет столбец в таблице или поле в столбце в таблице Delta Lake.
Необходимые разрешения
Если вы используете каталог Unity, вам необходимо разрешение MODIFY
на выполнение следующих действий:
- ALTER COLUMN
- ДОБАВИТЬ COLUMN
- DROP COLUMN
Для всех остальных операций необходимо быть владельцем таблицы.
Синтаксис
ALTER TABLE table_name
{ ADD COLUMN clause |
ALTER COLUMN clause |
DROP COLUMN clause |
RENAME COLUMN clause }
ДОБАВИТЬ COLUMN пункт
Это предложение не поддерживается для источников данных JDBC
.
Добавляет один или несколько столбцов в таблицу или одно или несколько полей в существующие столбцы в таблице Delta Lake.
Примечание.
При добавлении столбца в существующую таблицу Delta нельзя определить DEFAULT
значение. Все столбцы, добавленные в таблицы Delta, обрабатываются как NULL
для существующих строк. После добавления столбца можно при необходимости определить значение по умолчанию для столбца, но оно применяется только для новых строк, вставленных в таблицу. Используйте следующий синтаксис:
ALTER TABLE table_name ALTER COLUMN column_name SET DEFAULT default_expression
Синтаксис
{ ADD [ COLUMN | COLUMNS ]
( { { column_identifier | field_name } data_type
[ COLLATE collation_name ]
[ DEFAULT clause ]
[ COMMENT comment ]
[ FIRST | AFTER identifier ]
[ MASK clause ] } [, ...] ) }
Параметры
-
Имя добавляемого столбца. Имя должно быть уникальным в пределах таблицы.
Если не указаны параметры
FIRST
иAFTER name
, новый столбец или новое поле будут добавлены в конец. -
Полное имя поля, которое будет добавлено к существующему столбцу. Должны существовать все компоненты пути вплоть до уровня вложенности нового поля, а само имя поля должно быть уникальным.
DEFAULT default_expression
Область применения: Databricks SQL Databricks Runtime 11.3 LTS и выше
Определяет значение
DEFAULT
для столбца, который используется вINSERT
иMERGE ... INSERT
, когда столбец не указан. Все литералыSTRING
и функцииSTRING
в выражении по умолчанию будут использовать коллатуруUTF8_BINARY
.Если значение по умолчанию не указано, для столбцов, допускающих значение NULL, подразумевается
DEFAULT NULL
.default_expression
может состоять из литералов и встроенных функций SQL или операторов за исключением следующих:- Агрегатные функции
- Аналитические функции окон
- Ранжирование функций окна
- Функции генератора с табличным значением
default_expression
не должен содержать любых вложенных запросов.DEFAULT
поддерживается для источниковCSV
,JSON
,PARQUET
иORC
.-
Задает тип данных столбца или поля. Не все типы данных, поддерживаемые Azure Databricks, поддерживаются всеми источниками данных.
COLLATE
collation_nameДля
data_type
STRING
при необходимости задает параметры сортировки, используемые с столбцом или полем. Если не указано, применяется сортировкаUTF8_BINARY
.COMMENT comment
Необязательный
STRING
литерал, описывающий добавленный столбец или поле.Если вы хотите добавить созданный ИИ комментарий для таблицы или столбца таблицы, управляемого каталогом Unity, см. статью "Добавление примечаний, созданных ИИ" в объекты каталога Unity.
FIRST
Если указан этот параметр, столбец будет добавлен на первую позицию в таблице или поле будет добавлено на первую позицию в содержащей его структуре.
AFTER
идентификаторЕсли указан этот параметр, то столбец или поле будет добавлены сразу после поля или столбца с идентификатором
identifier
.-
Применимо к:Databricks SQL Databricks Runtime 12.2 LTS и более поздних версий каталога Unity
Внимание
Эта функция предоставляется в режиме общедоступной предварительной версии.
Добавляет функцию маски столбца для анонимизации конфиденциальных данных. Все последующие запросы из этого столбца получат результат оценки этой функции по столбцу вместо исходного значения столбца. Это может быть полезно для точного контроля доступа, где функция может проверить удостоверение или членство в группах вызывающего пользователя, чтобы определить, следует ли изменить значение.
предложение ALTER COLUMN
Область применения: Databricks SQL Databricks Runtime
Изменяет свойство или расположение столбца.
Синтаксис
{ { ALTER | CHANGE } [ COLUMN ] { column_identifier | field_name }
{ COMMENT comment |
{ FIRST | AFTER column_identifier } |
{ SET | DROP } NOT NULL |
TYPE data_type |
SET DEFAULT clause |
DROP DEFAULT |
SYNC IDENTITY |
SET { MASK clause } |
DROP MASK |
SET TAGS clause |
UNSET TAGS clause } }
Параметры
-
Имя столбца, который требуется изменить.
-
Полное имя изменяемого поля. Должны существовать все компоненты пути к вложенному полю.
COMMENT comment
Изменяет описание столбца
column_name
.comment
должен быть литераломSTRING
.FIRST
илиAFTER
идентификаторПеремещает столбец из текущего положения на первую позицию (
FIRST
) или сразу после указанного элемента (AFTER
identifier
). Это предложение поддерживается, только еслиtable_name
указывает на таблицу Delta.TYPE
data_typeОбласть применения: Databricks SQL Databricks Runtime 15.2 и более поздних версий
Изменяет тип данных столбца
column_name
.Это предложение поддерживается, только если
table_name
указывает на таблицу Delta.Для всех таблиц Delta поддерживаются следующие изменения типов:
- Увеличение размера столбца
VARCHAR
, например отVARCHAR(5)
доVARCHAR(10)
- Изменение типа столбца
CHAR
на столбецVARCHAR
, например, сCHAR(5)
VARCHAR(5)
- Изменение типа столбца или типа на , например, с
CHAR
VARCHAR
.STRING
VARCHAR(10)
STRING
Следующие изменения типа поддерживаются для таблиц Delta с
delta.enableTypeWidening
заданным значениемtrue
:Внимание
Эта функция доступна в общедоступной предварительной версии в Databricks Runtime 15.2 и выше.
Тип источника Поддерживаемые более широкие типы BYTE
SHORT
, ,INT
BIGINT
,DECIMAL
DOUBLE
SHORT
INT
, ,BIGINT
DECIMAL
DOUBLE
INT
BIGINT
, ,DECIMAL
DOUBLE
BIGINT
DECIMAL
,DOUBLE
FLOAT
DOUBLE
DECIMAL
DECIMAL
с большей точностью и масштабированиемDATE
TIMESTAMP_NTZ
Дополнительные сведения о расширении типов см. в разделе "Расширение типов".
- Увеличение размера столбца
SET NOT NULL
илиDROP NOT NULL
Изменяет домен допустимых значений столбца, чтобы исключить значения NULL (
SET NOT NULL
) или включить значения NULL (DROP NOT NULL
). Эта возможность поддерживается только для таблиц Delta Lake. Delta Lake будет отслеживать соблюдение этого ограничения для всех существующих и новых данных.SYNC IDENTITY
Область применения: Databricks SQL Databricks Runtime 10.4 LTS и выше
Синхронизируйте метаданные для столбца идентификаторов с фактическими данными. Если вы сохраняете собственные значения в столбец идентификаторов, они могут не соответствовать метаданным. Этот механизм оценивает состояние и обновляет метаданные в соответствии с фактическими данными. После выполнения этой команды следующее автоматически назначенное значение идентификатора будет начинаться с позиции
start + (n + 1) * step
, гдеn
— наименьшее значение, удовлетворяющееstart + n * step >= max()
(для положительного шага).Этот механизм поддерживается только для столбцов идентификаторов в таблицах Delta Lake.
DROP DEFAULT
Область применения: Databricks SQL Databricks Runtime 11.3 LTS и выше
Удаляет выражение по умолчанию из столбца. Для столбцов, допускающих значение NULL, это эквивалентно
SET DEFAULT NULL
. Для столбцов, определенных сNOT NULL
, вам необходимо указать значение для каждой будущей операцииINSERT
SET DEFAULT default_expression
Область применения: Databricks SQL Databricks Runtime 11.3 LTS и выше
Определяет значение
DEFAULT
для столбца, который используется вINSERT
иMERGE ... INSERT
, когда столбец не указан.Если значение по умолчанию не указано, для столбцов, допускающих значение NULL, подразумевается
DEFAULT NULL
.default_expression
может состоять из литералов, встроенных функций SQL или операторов за исключением следующих:- Агрегатные функции
- Аналитические функции окон
- Ранжирование функций окна
- Функции генератора с табличным значением
default_expression
не должен содержать любых вложенных запросов.DEFAULT
поддерживается для источниковCSV
,JSON
,ORC
иPARQUET
.При определении значения по умолчанию для добавленного столбца значение по умолчанию применяется ко всем существующим строкам. Если значение по умолчанию включает недетерминированную функцию, например
rand
илиcurrent_timestamp
значение вычисляется один раз при выполненииALTER TABLE
и применяется в качестве константы к существующим строкам. Для недавно вставленных строк выражение по умолчанию выполняется один раз на каждую строку.При настройке по умолчанию
ALTER COLUMN
существующие строки не влияют на это изменение.SET
Предложение MASKПрименимо к:Databricks SQL Databricks Runtime 12.2 LTS и более поздних версий каталога Unity
Внимание
Эта функция предоставляется в режиме общедоступной предварительной версии.
Добавляет функцию маски столбца для анонимизации конфиденциальных данных. Все последующие запросы из этого столбца получат результат оценки этой функции по столбцу вместо исходного значения столбца. Это может быть полезно для точного контроля доступа, где функция может проверить удостоверение или членство в группах вызывающего пользователя, чтобы определить, следует ли изменить значение.
DROP MASK
Область применения: только каталог Unity
Внимание
Эта функция предоставляется в режиме общедоступной предварительной версии.
Удаляет маску столбца для этого столбца, если таковой есть. Будущие запросы из этого столбца получат исходные значения столбца.
SET TAGS ( { tag_name = tag_value } [, ...] )
Область применения: Databricks SQL Databricks Runtime 13.3 LTS и выше
Примените теги к столбцу. Необходимо иметь
APPLY TAG
разрешение на добавление тегов в столбец.tag_name
Литерал
STRING
. Онtag_name
должен быть уникальным в таблице или столбце.tag_value
Литерал
STRING
.
UNSET TAGS ( tag_name [, ...] )
Область применения: Databricks SQL Databricks Runtime 13.3 LTS и выше
Удалите теги из столбца. Необходимо иметь
APPLY TAG
разрешение на удаление тегов из столбца.tag_name
Литерал
STRING
. Онtag_name
должен быть уникальным в таблице или столбце.
DROP COLUMN предложение
Внимание
Эта функция предоставляется в режиме общедоступной предварительной версии.
Область применения: Databricks SQL Databricks Runtime 11.3 LTS и выше
Удаляет один или несколько столбцов или полей в таблице Delta Lake.
При удалении столбца или поля также нужно удалить все зависимые проверочные ограничения и автоматически создаваемые столбцы.
Сведения о требованиях см. в разделе "Переименование и удаление столбцов" с помощью сопоставления столбцов Delta Lake.
Синтаксис
DROP [COLUMN | COLUMNS] [ IF EXISTS ] ( { {column_identifier | field_name} [, ...] )
Параметры
IF EXISTS
При указании
IF EXISTS
Azure Databricks игнорирует попытку удалить столбцы, которые не существуют. В противном случае удаление несуществующих столбцов вызовет ошибку.-
Имя существующего столбца.
-
Полное имя существующего поля.
переименовать пункт COLUMN
Внимание
Эта функция предоставляется в режиме общедоступной предварительной версии.
Область применения: Databricks SQL Databricks Runtime 10.4 LTS и выше
Переименовывает столбец или поле в таблице Delta Lake, включенной для сопоставления столбцов.
При изменении имени столбца или поля необходимо также изменить зависимые проверочные ограничения и созданные столбцы. Все первичные ключи и внешние ключи, использующие столбец, будут удалены. При использовании внешних ключей необходимо владеть таблицей, для которой определен внешний ключ.
Требования и включение сопоставления столбцов см. в разделе "Переименование и удаление столбцов" с сопоставлением столбцов Delta Lake.
Синтаксис
RENAME COLUMN { column_identifier TO to_column_identifier|
field_name TO to_field_identifier }
Параметры
-
Существующее имя столбца.
-
Новый идентификатор столбца. Идентификатор должен быть уникальным в пределах таблицы.
-
Существующее полное имя поля.
-
Новый идентификатор поля. Идентификатор должен быть уникальным в пределах локальной структуры.
Примеры
См. примеры ALTER TABLE.