Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Область применения:
Databricks SQL
Databricks Runtime
Добавляет, изменяет или удаляет столбец в таблице или поле в столбце в таблице Delta Lake.
Необходимые разрешения
Если вы используете каталог Unity, вам необходимо разрешение MODIFY на выполнение следующих действий:
ALTER COLUMNADD COLUMNDROP 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, новый столбец или новое поле будут добавлены в конец. -
Полное имя поля, которое будет добавлено к существующему столбцу. Все компоненты пути к вложенному полю должны существовать, а имя поля должно быть уникальным.
Чтобы добавить поля в структуры, вложенные в
ARRAYилиMAPтипы, используйте следующие специальные имена:-
ELEMENTдля перехода к элементуARRAY. -
KEYдля перехода к ключуMAP. -
VALUEДля перехода к значениюMAP.
Например,
phonenumbers.element.countrycodeдобавляет полеcountrycodeк каждому элементу массиваphonenumbers. -
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, поддерживаются всеми источниками данных.
COLLATEcollation_nameДля
data_typeSTRINGопционально указывает сортировку, используемую со столбцом или полем. Если не указано, применяется сортировка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 и выше.
Тип источника Поддержка более широкого спектра типов BYTESHORT, ,INTBIGINT,DECIMALDOUBLESHORTINT, ,BIGINTDECIMALDOUBLEINTBIGINT, ,DECIMALDOUBLEBIGINTDECIMAL,DOUBLEFLOATDOUBLEDECIMALDECIMALс большей точностью и масштабированиемDATETIMESTAMP_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, вам необходимо указать значение для каждой будущей операцииINSERTSET 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 EXISTSAzure 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.