ALTER TABLE ... COLUMN 절
적용 대상: Databricks SQL Databricks Runtime
Delta Lake table에서 table 또는 column의 column을(를) 추가, 수정, 또는 삭제합니다.
필요한 사용 권한
Unity Catalog 사용하는 경우 다음을 수행할 MODIFY
권한이 있어야 합니다.
- ALTER COLUMN
- 추가 COLUMN
- 드롭 COLUMN
table의 소유권이 다른 모든 작업에 필요합니다.
구문
ALTER TABLE table_name
{ ADD COLUMN clause |
ALTER COLUMN clause |
DROP COLUMN clause |
RENAME COLUMN clause }
ADD COLUMN 절
이 절은 JDBC
데이터 원본에는 지원되지 않습니다.
Delta Lake table에 table에 하나 이상의 columns를 추가하거나 기존 columns에 필드를 추가합니다.
참고 항목
기존 Delta table에 column를 추가하면 DEFAULT
값을 정의할 수 없습니다. Delta tables에 추가된 모든 columns는 기존 행에 대해 NULL
로 처리됩니다.
column추가한 후에는 필요에 따라 column기본값을 정의할 수 있지만 table삽입된 새 행에만 적용됩니다. 다음 구문을 사용합니다.
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 ] } [, ...] ) }
Parameters
-
추가할 column의 이름입니다. 이름은 table내에서 고유해야 합니다.
FIRST
또는AFTER name
지정하지 않는 한 column 또는 필드가 끝에 추가됩니다. -
기존 column에 추가할 필드의 전체 자격 이름입니다. 중첩된 필드에 대한 경로의 모든 구성 요소가 있어야 하며 필드 이름 자체는 고유해야 합니다.
DEFAULT default_expression
적용 대상: Databricks SQL Databricks Runtime 11.3 LTS 이상
column가 지정되지 않은 경우
INSERT
및MERGE ... INSERT
에서 사용될 column에 대한DEFAULT
값을 정의합니다. 기본 식의 모든STRING
리터럴 및STRING
함수는UTF8_BINARY
데이터 정렬을 사용합니다.기본값이 지정되지 않으면 null 허용 columns에 대해
DEFAULT NULL
이 기본값으로 암시됩니다.default_expression
은 다음을 제외하고 리터럴 및 기본 제공 SQL 함수 또는 연산자로 구성될 수 있습니다.- 집계 함수
- 분석적 window 함수
- 순위 window 함수
- Table 값이 있는 생성기 함수
default_expression
에는 하위 쿼리가 포함되어서는 안 됩니다.DEFAULT
는CSV
,JSON
,PARQUET
및ORC
원본에 대해 지원됩니다.-
column 또는 필드의 데이터 형식을 지정합니다. Azure Databricks에서 지원하는 모든 데이터 형식이 모든 데이터 원본에서 지원되는 것은 아닙니다.
COLLATE
정렬_이름data_type
STRING
은(는) 선택적으로 column 또는 필드에서 사용할 정렬 순서를 지정합니다. 지정하지 않으면UTF8_BINARY
정렬 기준이 적용됩니다.COMMENT comment
추가된 column 또는 필드를 설명하는 선택적
STRING
리터럴입니다.Unity
관리하는 또는 대한 AI 생성 주석을 추가하려면Unity 개체에 AI 생성 주석 추가 참조하세요. FIRST
지정한 경우 column이 table의 첫 번째 column로 추가되거나, 그렇지 않으면 포함하는 구조체의 첫 번째 필드로 필드가 추가됩니다.
AFTER
identifier지정된 경우, column 또는 필드가 필드 또는 column
identifier
바로 다음에 추가됩니다.-
적용 대상: Databricks SQL Databricks Runtime 12.2 LTS 이상 및 Unity Catalog만.
Important
이 기능은 공개 미리 보기 상태입니다.
column 마스크 함수를 추가하여 중요한 데이터를 익명화합니다. 해당 column의 모든 후속 쿼리는 column의 원래 값 대신 column에서 해당 함수를 평가한 결과를 받게 됩니다. 세분화된 액세스 제어 용도로 유용할 수 있으며, 함수는 호출하는 사용자의 신원 또는 그룹 멤버 자격을 검사하여 값을 수정할지 여부를 결정할 수 있습니다. where
ALTER COLUMN 절
적용 대상: Databricks SQL Databricks Runtime
속성 하나 또는 column의 위치를 변경합니다.
구문
{ { 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 } }
Parameters
-
변경할 대상인 column의 이름입니다.
-
변경할 필드의 정규화된 이름입니다. 중첩된 필드에 대한 경로의 모든 구성 요소가 있어야 합니다.
COMMENT comment
column_name
column의 설명을 변경합니다.comment
는STRING
리터럴이어야 합니다.FIRST
또는AFTER
identifiercolumn을(를) 현재 위치에서
FIRST
앞으로 이동하거나identifier
바로 뒤에AFTER
로 이동합니다. 이 조항은table_name
가 Delta table인 경우에만 지원됩니다.TYPE
data_type적용 대상: Databricks SQL Databricks Runtime 15.2 이상
column_name
column데이터 형식을 변경합니다.table_name
가 Delta table인 경우에만 이 조항이 지원됩니다.모든 Delta tables에 대해 다음과 같은 형식 변경이 지원됩니다.
-
VARCHAR
column의 크기를 늘리는 것(예:VARCHAR(5)
에서VARCHAR(10)
) -
CHAR
column의 유형을VARCHAR
로 변경하는 경우, 예를 들어CHAR(5)
에서VARCHAR(5)
로 변경하는 경우입니다. -
CHAR
또는VARCHAR
column 형식을STRING
(예:VARCHAR(10)
에서STRING
)로 변경합니다.
delta.enableTypeWidening
에서true
까지,set와 함께 Delta tables에 대해 다음과 같은 형식 변경이 지원됩니다.Important
이 기능은 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
제외하거나 nullDROP NOT NULL
포함하도록 유효한 columnvalues 도메인을 변경합니다. 이 옵션은 Delta Lake tables대해서만 지원됩니다. Delta Lake는 모든 기존 데이터 및 새로운 데이터가 constraint에 대해 유효한지 확인합니다.SYNC IDENTITY
적용 대상: Databricks SQL Databricks Runtime 10.4 LTS 이상
ID column 메타데이터를 실제 데이터와 동기화합니다. 당신이 고유한 values를 ID column에 작성할 때, 메타데이터를 준수하지 않을 수도 있습니다. 이 옵션은 상태를 평가하고 메타데이터를 실제 데이터와 일치하도록 업데이트합니다. 이 명령 후에, 자동으로 할당된 다음 ID 값은
start + (n + 1) * step
에서 시작합니다. 그리고 where은 양수 단계의 경우,start + n * step >= max()
을 충족하는 가장 작은 값인n
입니다.이 옵션은 Delta Lake tables에서 식별자 columns에 대해서만 지원됩니다.
DROP DEFAULT
적용 대상: Databricks SQL Databricks Runtime 11.3 LTS 이상
column의 기본 식을 제거합니다. nullable columns 경우 이는
SET DEFAULT NULL
동일합니다.NOT NULL
로 정의된 columns의 경우, 향후 모든INSERT
작업에 대해 값을 제공해야 합니다.SET DEFAULT default_expression
적용 대상: Databricks SQL Databricks Runtime 11.3 LTS 이상
INSERT
및MERGE ... INSERT
에서 사용되는 column에 대해 column가 지정되지 않은 경우DEFAULT
값을 정의합니다.기본값이 지정되지 않은 경우, null을 허용하는 columns의 기본값으로
DEFAULT NULL
이(가) 암시됩니다.default_expression
은 다음을 제외하고 리터럴, 기본 제공 SQL 함수 또는 연산자로 구성될 수 있습니다.- 집계 함수
- Analytic window 함수
- 순위 window 함수
- Table 값이 있는 생성기 함수
default_expression
에는 하위 쿼리가 포함되어서는 안 됩니다.DEFAULT
는CSV
,JSON
,ORC
및PARQUET
원본에 대해 지원됩니다.새로 추가된 column대한 기본값을 정의하면 기본값이 모든 기존 행에 적용됩니다. 기본값에
rand
또는current_timestamp
와 같은 비결정 함수가 포함된 경우 값은ALTER TABLE
이 실행될 때 한 번 계산되고 기존 행에 상수로 적용됩니다. 새로 삽입된 행의 경우 기본 식은 행당 한 번씩 실행됩니다.ALTER COLUMN
을 사용하여 기본값을 set할 경우, 기존 행은 해당 변경의 영향을 받지 않습니다.SET
MASK 절적용 대상: Databricks SQL Databricks Runtime 12.2 LTS 이상 Unity Catalog만
Important
이 기능은 공개 미리 보기 상태입니다.
column 마스크 함수를 추가하여 중요한 데이터를 익명화합니다. 모든 해당 column의 후속 쿼리는 원래 column값 대신 column에서 해당 함수를 평가한 결과를 받습니다. 이는 함수가 호출하는 사용자의 ID 또는 그룹 멤버 자격을 검사하여 값을 수정할지 여부를 확인할 수 where 세분화된 액세스 제어 용도에 유용할 수 있습니다.
DROP MASK
적용 대상: Unity Catalog에만 해당
Important
이 기능은 공개 미리 보기 상태입니다.
column의 column 마스크를(있는 경우) 제거합니다. 향후 이 column의 쿼리는 column의 원래 values를 받게 됩니다.
SET TAGS ( { tag_name = tag_value } [, ...] )
적용 대상: Databricks SQL Databricks Runtime 13.3 LTS 이상
column태그를 적용합니다. column태그를 추가하려면
APPLY TAG
권한이 있어야 합니다.tag_name
리터럴
STRING
입니다.tag_name
table 또는 column내에서 고유해야 합니다.tag_value
리터럴
STRING
입니다.
UNSET TAGS ( tag_name [, ...] )
적용 대상: Databricks SQL Databricks Runtime 13.3 LTS 이상
column태그를 Remove로 옮기세요. column태그에서 remove 작업을 하려면
APPLY TAG
권한이 있어야 합니다.tag_name
리터럴
STRING
입니다.tag_name
table 또는 column내에서 고유해야 합니다.
DROP COLUMN 절
Important
이 기능은 공개 미리 보기 상태입니다.
적용 대상: Databricks SQL Databricks Runtime 11.3 LTS 이상
Delta Lake table에서 하나 이상의 columns 또는 필드를 제거합니다.
column 또는 필드를 삭제할 때, 종속 CHECK 제약 조건과 생성된 columns도 함께 삭제해야 합니다.
요구 사항에 대해서는 "이름 바꾸기" 및 Delta Lake "column 매핑를 사용한 columns 삭제"를 참조하세요.
구문
DROP [COLUMN | COLUMNS] [ IF EXISTS ] ( { {column_identifier | field_name} [, ...] )
Parameters
IF EXISTS
IF EXISTS
지정하면 Azure Databricks는 존재하지 않는 columns 삭제하려는 시도를 무시합니다. 그렇지 않으면, 존재하지 않는 columns을 삭제할 경우 오류가 발생합니다.-
기존 column의 이름.
-
기존 필드의 정규화된 이름입니다.
RENAME COLUMN 절
Important
이 기능은 공개 미리 보기 상태입니다.
적용 대상: Databricks SQL Databricks Runtime 10.4 LTS 이상
column 매핑에 사용하도록 설정된 Delta Lake table에 있는 column 또는 필드의 이름을 바꿉니다.
column 또는 필드의 이름을 바꿀 때는 종속 CHECK 제약조건을 변경하고 생성된 columns도 변경해야 합니다. column 사용하는 모든 기본 키와 외신 키는 삭제됩니다. 외래 키의 경우, 외래 키가 정의된 table를 소유해야 합니다.
요구 사항 및 column 매핑을 사용하도록 설정하는 방법은 Delta Lake column 매핑사용하여 columns 이름 바꾸기 및 삭제를 참조하세요.
구문
RENAME COLUMN { column_identifier TO to_column_identifier|
field_name TO to_field_identifier }
Parameters
-
column의 기존 이름입니다.
-
새로운 columnidentifier. identifier table내에서 고유해야 합니다.
-
필드의 기존 정규화된 이름입니다.
-
새 필드 identifier. identifier 로컬 구조체 내에서 고유해야 합니다.