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>' ]
重要
ALLOWED_VALUES
が機能するためには、 COMMENT
などの他のすべてのパラメーターの前に、 ALLOWED_VALUES
というパラメーターを必ず設定する必要があります。
バリアント構文¶
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 <オブジェクト> コマンドを使用してタグが オブジェクト に設定されている場合に、タグに割り当てることができる選択可能な文字列値のコンマ区切りリストを指定します。
動作するには、他のすべてのパラメーターより前にする必要があります。
このリストのタグ値の最大数は300です。
タグがターゲットオブジェクトに自動的に伝播するように構成されている場合、許可リスト内の値の順序は、競合がどのように解決されるかに影響します。詳細については、 タグの伝播の競合 をご参照ください。
デフォルト: 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 |
タグ |
|
スキーマ内のオブジェクトに対して操作を実行するには、親データベースとスキーマに対する USAGE 権限が必要です。
指定された権限のセットを使用してカスタムロールを作成する手順については、 カスタムロールの作成 をご参照ください。
セキュリティ保護可能なオブジェクト に対して SQL アクションを実行するためのロールと権限付与に関する一般的な情報については、 アクセス制御の概要 をご参照ください。
タグ DDL と権限の詳細については、 アクセス制御権限 をご参照ください。
CREATE OR ALTER TAG の使用上の注意¶
ALTER TAG コマンドのすべての制限が適用されます。
マスキングポリシーの設定や設定解除はサポートされていません。
ALLOWED_VALUES
が機能するためには、COMMENT
などの他のすべてのパラメーターの前に、ALLOWED_VALUES
というパラメーターを必ず設定する必要があります。
使用上の注意¶
Snowflakeは、アカウント内のタグの数を10,000に制限します。
タグをSnowflakeオブジェクトに関連付ける方法の詳細については、 オブジェクトタグの紹介 をご参照ください。
タグ DDL 認証の詳細については、 必須権限 をご参照ください。
メタデータについて。
注意
Snowflakeサービスを使用する場合、お客様は、個人データ(ユーザーオブジェクト向け以外)、機密データ、輸出管理データ、またはその他の規制されたデータがメタデータとして入力されていないことを確認する必要があります。詳細については、 Snowflakeのメタデータフィールド をご参照ください。
OR REPLACE
とIF NOT EXISTS
句は互いに排他的です。両方を同じステートメントで使うことはできません。CREATE OR REPLACE <オブジェクト> ステートメントはアトミックです。つまり、オブジェクトが置き換えられると、単一のトランザクションで、古いオブジェクトが削除されて新しいオブジェクトが作成されます。
例¶
キー cost_center
でタグを作成します。
CREATE TAG cost_center COMMENT = 'cost_center tag';
新しい許容値を含むように cost_center
を更新し、コメントの設定を解除します。
CREATE OR ALTER TAG cost_center ALLOWED_VALUES 'finance', 'engineering', 'sales';