Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения: Databricks SQL
Databricks Runtime
Добавляет, изменяет или удаляет столбец в таблице или материализованном представлении или поле в столбце в таблице Delta Lake.
Необходимые разрешения
Если вы используете каталог Unity, вам необходимо разрешение MODIFY
на выполнение следующих действий:
ALTER COLUMN
ADD 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 Catalog
Внимание
Эта функция предоставляется в режиме общедоступной предварительной версии.
Добавляет функцию маски столбца для анонимизации конфиденциальных данных. Все последующие запросы из этого столбца получат результат оценки этой функции по столбцу вместо исходного значения столбца. Это может быть полезно для точного контроля доступа, где функция может проверять личность или членство пользователя в группах, чтобы определить, следует ли скрыть значение.
Предложение 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 }
[, ... ]
До Databricks Runtime 16.3 предложение не поддерживает изменение нескольких столбцов в одном предложении.
{ ALTER | CHANGE } [ COLUMN ]
{ column_identifier | field_name }
{ SET { MASK clause } |
DROP MASK |
SET TAGS clause |
UNSET TAGS clause }
Параметры
-
Имя столбца, который требуется изменить.
Если идентификатор столбца используется более одного раза, Azure Databricks генерирует NOT_SUPPORTED_CHANGE_SAME_COLUMN.
-
Полное квалифицированное имя поля, подлежащего изменению. Должны существовать все компоненты пути к вложенному полю.
Если имя поля упоминается более одного раза, Azure Databricks вызывает NOT_SUPPORTED_CHANGE_SAME_COLUMN.
COMMENT comment
Изменяет описание столбца
column_name
.comment
должен быть литераломSTRING
.FIRST
илиAFTER
идентификаторПеремещает столбец из текущего положения на первую позицию (
FIRST
) или сразу (AFTER
)identifier
. Это предложение поддерживается, только еслиtable_name
указывает на таблицу Delta.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 Catalog
Внимание
Эта функция предоставляется в режиме общедоступной предварительной версии.
Добавляет функцию маски столбца для анонимизации конфиденциальных данных. Все последующие запросы из этого столбца получат результат оценки этой функции по столбцу вместо исходного значения столбца. Это может быть полезно для точного контроля доступа, где функция может проверять личность или членство пользователя в группах, чтобы определить, следует ли скрыть значение.
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».
Синтаксис
DROP [COLUMN | COLUMNS] [ IF EXISTS ] ( { {column_identifier | field_name} [, ...] )
Параметры
IF EXISTS
При указании
IF EXISTS
Azure Databricks игнорирует попытку удалить столбцы, которые не существуют. В противном случае удаление несуществующих столбцов вызовет ошибку.-
Имя существующего столбца.
-
Полное квалифицированное имя существующего поля.
Условие RENAME 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.