CREATE TAG
CREATE TAG
CREATE TAG 명령은 시스템에 새 태그(tag)를 만들거나 기존 태그를 교체하는 명령이에요. 태그는 객체·컬럼에 메타데이터를 부여하는 데 사용됩니다.
출처: CREATE TAG
본문
시스템에 새 태그를 만들거나 기존 태그를 교체하는 명령입니다. 이 명령은 다음 변형을 지원해요: ALTER TAG, SHOW TAGS, DROP TAG, UNDROP TAG, Multi-value tags
Syntax
CREATE [ OR REPLACE ] TAG [ IF NOT EXISTS ] <name>
[ ALLOWED_VALUES '<val_1>' [ , '<val_2>' [ , ... ] ] ]
[ MULTI_VALUE = TRUE ]
[ PROPAGATE = { ON_DEPENDENCY_AND_DATA_MOVEMENT | ON_DEPENDENCY | ON_DATA_MOVEMENT }
[ ON_CONFLICT = { '<string>' | ALLOWED_VALUES_SEQUENCE | MERGE } ] ]
[ COMMENT = '<string_literal>' ]
Variant syntax
CREATE OR ALTER TAG
이미 존재하지 않으면 새 태그를 만들고, 존재하면 기존 태그를 문에 정의된 태그로 변환해요. CREATE OR ALTER TAG 문은 CREATE TAG 문의 구문 규칙을 따르며 ALTER TAG 문과 동일한 제한 사항을 가집니다. 지원되는 변경에는 ALLOWED_VALUES와 COMMENT 속성 변경이 포함돼요.
CREATE OR ALTER TAG <name>
[ ALLOWED_VALUES '<val_1>' [ , '<val_2>' [ , ... ] ] ]
[ COMMENT = '<string_literal>' ]
Required parameters (필수 파라미터)
name— 태그의 식별자예요.CREATE <object>또는ALTER <object>문을 사용해 객체에 태그 문자열 값을 할당합니다. 식별자 값은 알파벳 문자로 시작해야 하고, 전체 식별자 문자열을 큰따옴표로 감싸지 않는 한 공백이나 특수 문자를 포함할 수 없어요 (예:"My object"). 큰따옴표로 감싼 식별자는 대소문자를 구분합니다. 자세한 내용은 Identifier requirements 문서를 참고하세요.
Optional parameters (선택 파라미터)
ALLOWED_VALUES '<val_1>' [ , '<val_2>' [ , ... ] ]— 해당CREATE <object>또는ALTER <object>명령으로 객체에 태그를 설정할 때 태그에 할당할 수 있는 가능한 문자열 값의 쉼표로 구분된 목록을 지정해요. 다른 파라미터보다 앞에 와야 동작합니다. 이 목록의 최대 태그 값 수는 5,000개예요. 태그가 대상 객체에 자동 전파되도록 구성된 경우, 허용 목록의 값 순서는 충돌 해결 방식에 영향을 줄 수 있어요. 자세한 내용은 Tag propagation conflicts 문서를 참고하세요. 기본값:NULL(빈 문자열 값 포함하여 모든 문자열 값 허용).MULTI_VALUE = TRUE— 태그가 같은 객체나 컬럼에 여러 문자열 값을 저장할 수 있도록 지정해요. 이 속성을 설정한 후에는 해제하거나FALSE로 설정할 수 없어요. 객체의 값을 추가·제거하려면ADD VALUE와DROP VALUE를 사용합니다. 자세한 내용은 Multi-value tags 문서를 참고. 기본값: 태그는 단일 값을 저장. Enterprise Edition 기능 — 이 파라미터는 Enterprise Edition 이상이 필요합니다.PROPAGATE = { ON_DEPENDENCY_AND_DATA_MOVEMENT | ON_DEPENDENCY | ON_DATA_MOVEMENT }— 태그가 소스 객체에서 대상 객체로 자동 전파되도록 지정해요. 객체 종속성, 데이터 이동, 또는 둘 다일 때 전파되도록 구성할 수 있습니다.ON_DEPENDENCY_AND_DATA_MOVEMENT— 객체 종속성 또는 데이터 이동 시 태그를 전파.ON_DEPENDENCY— 객체 종속성에는 전파하되 데이터 이동에는 전파하지 않음.ON_DATA_MOVEMENT— 데이터 이동 시에는 전파하되 객체 종속성에는 전파하지 않음.- Enterprise Edition 기능 — 이 파라미터는 Enterprise Edition 이상이 필요합니다.
ON_CONFLICT = { '<string>' | ALLOWED_VALUES_SEQUENCE | MERGE }— 전파된 태그 값 사이에 충돌이 있을 때 어떻게 할지 지정해요. 이 파라미터를 설정하지 않고 충돌이 발생하면 태그 값은 문자열CONFLICT로 설정됩니다. 가능한 값:'<string>'— 충돌이 있을 때 태그 값이 지정된 문자열로 설정.ALLOWED_VALUES_SEQUENCE— 태그의ALLOWED_VALUES속성에 있는 값의 순서가 충돌 시 사용할 값을 결정. 예를 들어 다음 문으로 태그를 만들었다면:
충돌이 있으면CREATE TAG my_tag ALLOWED_VALUES 'blue', 'red' PROPAGATE = ON_DEPENDENCY ON_CONFLICT = ALLOWED_VALUES_SEQUENCE;my_tag의 값은 허용 목록에서red보다 앞에 있는blue가 됩니다.MERGE— 충돌하는 태그 값을 대상 객체의 여러 값으로 결합.ON_CONFLICT = MERGE는MULTI_VALUE = TRUE일 때만 설정할 수 있어요.- 기본값: 태그 값을
CONFLICT로 설정.
COMMENT = '<string_literal>'— 태그에 대한 주석을 지정해요. 기본값: 값 없음
Access control requirements (접근 제어 요구 사항)
이 작업을 실행하는 데 사용되는 역할은 최소한 다음 권한을 보유해야 해요.
스키마의 객체를 조작하려면 상위 데이터베이스에 대한 권한과 상위 스키마에 대한 권한이 각각 최소 하나씩 필요합니다. 지정된 권한 집합으로 사용자 정의 역할을 만드는 방법은 Creating custom roles 문서를, 보안 객체에 대한 SQL 작업의 역할·권한 부여에 대한 일반적인 정보는 Overview of Access Control 문서를 참고하세요. 태그 DDL과 권한에 대한 추가 내용은 Access control privileges 문서를 참고하세요.
General usage notes (일반 사용 참고 사항)
태그는 객체·컬럼에 문자열 값을 할당해 분류·거버넌스에 사용돼요.
Examples (예제)
cost_center 키를 가진 태그를 만들어 봅시다.
CREATE TAG cost_center COMMENT = 'cost_center tag';
cost_center를 업데이트해 새 허용 값들을 포함시키고 주석을 해제해 봅시다.
CREATE OR ALTER TAG cost_center ALLOWED_VALUES 'finance', 'engineering', 'sales';