다음을 통해 공유


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 ] } [, ...] ) }

매개 변수

  • column_identifier

    추가할 열의 이름입니다. 이름은 테이블 내에서 고유해야 합니다.

    FIRST 또는 AFTER name을 지정하지 않는 경우 열 또는 필드가 끝에 추가됩니다.

  • field_name

    기존 열에 추가할 필드의 정규화된 이름입니다. 중첩된 필드에 대한 경로의 모든 구성 요소가 있어야 하며 필드 이름 자체는 고유해야 합니다.

  • DEFAULT default_expression

    적용 대상: 예로 표시된 확인 Databricks SQL 예로 표시된 확인 Databricks Runtime 11.3 LTS 이상

    열이 지정되지 않은 경우 INSERTMERGE ... INSERT에 사용되는 열에 대한 DEFAULT 값을 정의합니다.

    기본값을 지정하지 않으면 null 허용 열에 대해 DEFAULT NULL이 암시됩니다.

    default_expression은 다음을 제외하고 리터럴 및 기본 제공 SQL 함수 또는 연산자로 구성될 수 있습니다.

    default_expression에는 하위 쿼리가 포함되어서는 안 됩니다.

    DEFAULTCSV, JSON, PARQUETORC 원본에 대해 지원됩니다.

  • data_type

    열 또는 필드의 데이터 형식을 지정합니다. Azure Databricks에서 지원하는 모든 데이터 형식이 모든 데이터 원본에서 지원되는 것은 아닙니다.

  • COMMENT comment

    추가된 열 또는 필드를 설명하는 선택적 STRING 리터럴입니다.

    Unity 카탈로그에서 관리하는 테이블 또는 테이블 열에 대해 AI 생성 주석을 추가하려면 Unity 카탈로그 개체에 AI 생성 주석 추가를 참조하세요.

  • FIRST

    지정하는 경우 열이 테이블의 첫 번째 열로 추가되거나 필드가 포함하는 구조체의 첫 번째 필드로 추가됩니다.

  • AFTERidentifier

    이를 지정하는 경우 identifier 필드 또는 열 바로 다음에 열 또는 필드가 추가됩니다.

  • MASK 절

    적용 대상: 예로 표시된 확인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 } }

매개 변수

  • column_identifier

    변경할 열의 이름입니다.

  • field_name

    변경할 필드의 정규화된 이름입니다. 중첩된 필드에 대한 경로의 모든 구성 요소가 있어야 합니다.

  • COMMENT comment

    column_name 열에 대한 설명을 변경합니다. commentSTRING 리터럴이어야 합니다.

  • FIRST 또는 AFTER식별자

    열을 현재 위치에서 앞(FIRST)이나 identifier 바로 AFTER로 이동합니다. 이 절은 table_name이 Delta 테이블인 경우에만 지원됩니다.

  • TYPEdata_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.enableTypeWideningtrue로 설정된 델타 테이블에 대해 지원됩니다.

    Important

    이 기능은 Databricks Runtime 15.2 이상에서 공개 미리 보기로 제공됩니다.

    원본 유형 지원되는 광범위한 형식
    BYTE SHORT, INT, BIGINT, DECIMALDOUBLE
    SHORT INT, BIGINT, DECIMALDOUBLE
    INT BIGINT, , DECIMALDOUBLE
    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부터 시작됩니다. 여기서 nstart + 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 이상

    열이 지정되지 않은 경우 INSERTMERGE ... INSERT에 사용되는 열에 대한 DEFAULT 값을 정의합니다.

    기본값이 지정되지 않은 경우 null 허용 열에 대해 DEFAULT NULL이 암시됩니다.

    default_expression은 다음을 제외하고 리터럴, 기본 제공 SQL 함수 또는 연산자로 구성될 수 있습니다.

    default_expression에는 하위 쿼리가 포함되어서는 안 됩니다.

    DEFAULTCSV, JSON, ORCPARQUET 원본에 대해 지원됩니다.

    새로 추가된 열에 대한 기본값을 정의하면 기본값이 모든 기존 행에 적용됩니다. 기본값에 rand 또는 current_timestamp와 같은 비결정 함수가 포함된 경우 값은 ALTER TABLE이 실행될 때 한 번 계산되고 기존 행에 상수로 적용됩니다. 새로 삽입된 행의 경우 기본 식은 행당 한 번씩 실행됩니다.

    ALTER COLUMN을 사용하여 기본값을 설정하면 기존 행은 해당 변경의 영향을 받지 않습니다.

  • SETMASK 절

    적용 대상: 예로 표시된 확인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는 존재하지 않는 열을 삭제하려는 시도를 무시합니다. 그렇지 않은 경우 존재하지 않는 열을 삭제하면 오류가 발생합니다.

  • column_identifier

    기존 열의 이름입니다.

  • field_name

    기존 필드의 정규화된 이름입니다.

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 예제를 참조하세요.