다음을 통해 공유


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_identifier

    추가할 column의 이름입니다. 이름은 table내에서 고유해야 합니다.

    FIRST 또는 AFTER name 지정하지 않는 한 column 또는 필드가 끝에 추가됩니다.

  • field_name

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

  • DEFAULT default_expression

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

    column가 지정되지 않은 경우 INSERTMERGE ... INSERT에서 사용될 column에 대한 DEFAULT 값을 정의합니다. 기본 식의 모든 STRING 리터럴 및 STRING 함수는 UTF8_BINARY 데이터 정렬을 사용합니다.

    기본값이 지정되지 않으면 null 허용 columns에 대해 DEFAULT NULL이 기본값으로 암시됩니다.

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

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

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

  • data_type

    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 또는 필드가 필드 또는 columnidentifier바로 다음에 추가됩니다.

  • MASK 절

    적용 대상:확인 표시 있음 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_identifier

    변경할 대상인 column의 이름입니다.

  • field_name

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

  • COMMENT comment

    column_name column의 설명을 변경합니다. commentSTRING 리터럴이어야 합니다.

  • FIRST 또는 AFTER identifier

    column을(를) 현재 위치에서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 또는 VARCHARcolumn 형식을 STRING(예: VARCHAR(10)에서 STRING)로 변경합니다.

    delta.enableTypeWidening에서 true까지,set와 함께 Delta tables에 대해 다음과 같은 형식 변경이 지원됩니다.

    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포함하도록 유효한 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 이상

    INSERTMERGE ... INSERT에서 사용되는 column에 대해 column가 지정되지 않은 경우 DEFAULT 값을 정의합니다.

    기본값이 지정되지 않은 경우, null을 허용하는 columns의 기본값으로 DEFAULT NULL이(가) 암시됩니다.

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

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

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

    새로 추가된 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_identifier

    기존 column의 이름.

  • field_name

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

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

예제

예제를 참조하세요.