CREATE TAG¶
システム内で、新しいタグを作成するか、既存のタグを置き換えます。
このコマンドは次のバリアントをサポートしています。
CREATE OR ALTER TAG: タグが存在しない場合はタグを作成するか、既存のタグを変更します。
- こちらもご参照ください。
構文¶
CREATE [ OR REPLACE ] TAG [ IF NOT EXISTS ] <name>
[ ALLOWED_VALUES '<val_1>' [ , '<val_2>' [ , ... ] ] ]
[ PROPAGATE = { ON_DEPENDENCY_AND_DATA_MOVEMENT | ON_DEPENDENCY | ON_DATA_MOVEMENT }
[ ON_CONFLICT = { '<string>' | ALLOWED_VALUES_SEQUENCE } ] ]
[ COMMENT = '<string_literal>' ]
バリアント構文¶
CREATE OR ALTER TAG¶
タグがまだ存在しない場合に新しいタグを作成するか、既存のタグをステートメントで定義されたタグに変換します。CREATE OR ALTER TAG ステートメントは、 CREATE TAG ステートメントの構文ルールに従い、このステートメントには ALTER TAG ステートメントと同じ制限があります。
サポートされる変更には、 ALLOWED_VALUES および COMMENT プロパティの変更が含まれます。
詳細については、 CREATE OR ALTER TAG の使用上の注意 をご参照ください。
CREATE OR ALTER TAG <name>
[ ALLOWED_VALUES '<val_1>' [ , '<val_2>' [ , ... ] ] ]
[ COMMENT = '<string_literal>' ]
必須パラメーター¶
nameタグの識別子。CREATE <オブジェクト> ステートメントまたは ALTER <オブジェクト> ステートメントのいずれかを使用して、 オブジェクト にタグ文字列値を割り当てます。
識別子の値はアルファベットで始まる必要があり、識別子文字列全体が二重引用符で囲まれていない限り、スペースや特殊文字を含めることはできません(例: 「私のオブジェクト」)。二重引用符で囲まれた識別子も大文字と小文字が区別されます。
詳細については、 識別子の要件 をご参照ください。
オプションのパラメーター¶
ALLOWED_VALUES 'val_1' [ , 'val_2' [ , ... ] ]対応する CREATE <オブジェクト> または ALTER <オブジェクト> コマンドを使用してタグが オブジェクト に設定されている場合に、タグに割り当てることができる選択可能な文字列値のコンマ区切りリストを指定します。
動作するには、他のすべてのパラメーターより前にする必要があります。
このリストのタグ値の最大数は5,000です。
タグがターゲットオブジェクトに自動的に伝播するように構成されている場合、許可リスト内の値の順序は、競合がどのように解決されるかに影響します。詳細については、 タグの伝播の競合 をご参照ください。
デフォルト: NULL (空文字列値(つまり、
' ')を含む、すべての文字列値が許可されます)。PROPAGATE = { ON_DEPENDENCY_AND_DATA_MOVEMENT | ON_DEPENDENCY | ON_DATA_MOVEMENT }-
タグがソースオブジェクトからターゲットオブジェクトへ 自動的に伝播 されることを指定します。オブジェクト依存関係、 データ移動、またはその両方がある場合にタグが伝播するように構成できます。
ON_DEPENDENCY_AND_DATA_MOVEMENTオブジェクト依存関係やデータ移動がある場合にタグを伝播します。
ON_DEPENDENCYオブジェクト依存関係のタグを伝播しますが、データ移動のタグは伝播しません。
ON_DATA_MOVEMENTオブジェクト依存関係ではなく、データ移動があった場合にタグを伝播します。
ON_CONFLICT = { 'string' | ALLOWED_VALUES_SEQUENCE }-
伝播されたタグ の値の間に矛盾がある場合にどうするかを指定します。
このパラメーターを設定せず、競合が発生した場合、タグの値は文字列
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の値はblueになります。これは許容値リストでredより前にあるためです。
デフォルト: タグの値を
CONFLICTに設定します。 COMMENT = 'string_literal'タグのコメントを指定します。
デフォルト: 値なし
アクセス制御の要件¶
この操作の実行に使用される ロール には、少なくとも次の 権限 が必要です。
権限 |
オブジェクト |
注意 |
|---|---|---|
CREATE TAG |
スキーマ |
|
OWNERSHIP |
タグ |
|
Operating on an object in a schema requires at least one privilege on the parent database and at least one privilege on the parent schema.
指定された権限のセットを使用してカスタムロールを作成する手順については、 カスタムロールの作成 をご参照ください。
セキュリティ保護可能なオブジェクト に対して SQL アクションを実行するためのロールと権限付与に関する一般的な情報については、 アクセス制御の概要 をご参照ください。
タグ DDL と権限の詳細については、 アクセス制御権限 をご参照ください。
一般的な使用上の注意¶
COMMENT など他のすべてのパラメーターの前に ALLOWED_VALUES パラメーターを設定する必要があります。
タグをSnowflakeオブジェクトに関連付ける方法の詳細については、 オブジェクトタグの紹介 をご参照ください。
タグ DDL 認証の詳細については、 必須権限 をご参照ください。
メタデータについて。
注意
Snowflakeサービスを使用する場合、お客様は、個人データ(ユーザーオブジェクト向け以外)、機密データ、輸出管理データ、またはその他の規制されたデータがメタデータとして入力されていないことを確認する必要があります。詳細については、 Snowflakeのメタデータフィールド をご参照ください。
OR REPLACE 句と IF NOT EXISTS 句は互いに排他的です。この2つを同じステートメントで使うことはできません。
CREATE OR REPLACE <オブジェクト> ステートメントはアトミックです。つまり、オブジェクトが置き換えられると、単一のトランザクションで、古いオブジェクトが削除されて新しいオブジェクトが作成されます。
CREATE OR ALTER TAG の使用上の注意¶
このコマンドを使用すると、指定されていないパラメーターすべてがリセットされます。たとえば、新しいコメントのみを指定した場合は、 PROPAGATE パラメーターはタグの伝播を有効にしなくなります。
ALTER TAG コマンドのすべての制限が適用されます。
マスキングポリシーの設定や設定解除はサポートされていません。
例¶
キー cost_center でタグを作成します。
CREATE TAG cost_center COMMENT = 'cost_center tag';
新しい許容値を含むように cost_center を更新し、コメントの設定を解除します。
CREATE OR ALTER TAG cost_center ALLOWED_VALUES 'finance', 'engineering', 'sales';
