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