enable_case_sensitive_identifier - Amazon Redshift

enable_case_sensitive_identifier

値 (デフォルトは太字)

true、false

説明

データベース、テーブル、および列の名前識別子が大文字と小文字を区別するかどうかを決定する構成値。二重引用符で囲むことで、名前識別子の大文字と小文字を保持できます。enable_case_sensitive_identifiertrue に設定すると、名前識別子の大文字と小文字が区別されます。enable_case_sensitive_identifierfalse に設定すると、名前識別子の大文字と小文字は区別されません。

二重引用符で囲まれたユーザーネームの大文字と小文字は、enable_case_sensitive_identifier設定オプションの設定にかかわらず、常に保持されます。

次の例は、テーブル名と列名で大文字と小文字を区別する識別子を作成して使用する方法を示しています。

-- To create and use case sensitive identifiers SET enable_case_sensitive_identifier TO true; -- Create tables and columns with case sensitive identifiers CREATE TABLE "MixedCasedTable" ("MixedCasedColumn" int); CREATE TABLE MixedCasedTable (MixedCasedColumn int); -- Now query with case sensitive identifiers SELECT "MixedCasedColumn" FROM "MixedCasedTable"; MixedCasedColumn ------------------ (0 rows) SELECT MixedCasedColumn FROM MixedCasedTable; mixedcasedcolumn ------------------ (0 rows)

次の例では、識別子の大文字と小文字が保持されない場合を示しています。

-- To not use case sensitive identifiers RESET enable_case_sensitive_identifier; -- Mixed case identifiers are lowercased CREATE TABLE "MixedCasedTable2" ("MixedCasedColumn" int); CREATE TABLE MixedCasedTable2 (MixedCasedColumn int); ERROR: Relation "mixedcasedtable2" already exists SELECT "MixedCasedColumn" FROM "MixedCasedTable2"; mixedcasedcolumn ------------------ (0 rows) SELECT MixedCasedColumn FROM MixedCasedTable2; mixedcasedcolumn ------------------ (0 rows)

使用に関する注意事項

  • マテリアライズドビューに自動更新を使用している場合は、クラスターまたはワークグループのパラメータグループで enable_case_sensitive_identifier 値を設定することをお勧めします。これにより、マテリアライズドビューが更新されても、enable_case_sensitive_identifier は一定に保たれます。マテリアライズドビューの自動更新については、「マテリアライズドビューの更新」を参照してください。パラメータグループの構成値の設定については、Amazon Redshift 管理ガイドの「Amazon Redshift パラメータグループ」を参照してください。

  • 行レベルのセキュリティ機能や動的データマスキング機能を使用している場合、クラスターまたはワークグループのパラメータグループに enable_case_sensitive_identifier 値を設定することをお勧めします。これにより、ポリシーを作成してアタッチし、ポリシーが適用されたリレーションをクエリするまでの間、enable_case_sensitive_identifier の一貫性が保たれます。行レベルのセキュリティの詳細については、「行レベルのセキュリティ」を参照してください。動的データマスキングの詳細については、「動的データマスキング」を参照してください。

  • enable_case_sensitive_identifier をオンに設定してテーブルを作成すると、大文字と小文字を区別する列名を設定できます。enable_case_sensitive_identifier をオフに設定してテーブルをクエリすると、列名が小文字化されます。これにより、enable_case_sensitive_identifier がオンに設定されている場合とは異なるクエリ結果が生成される可能性があります。次の例を考えます。

    SET enable_case_sensitive_identifier TO on; --Amazon Redshift preserves case for column names and other identifiers. --Create a table with two columns that are identical except for the case. CREATE TABLE t ("c" int, "C" int); INSERT INTO t VALUES (1, 2); SELECT * FROM t; c | C ---+--- 1 | 2 (1 row) SET enable_case_sensitive_identifier TO off; --Amazon Redshift no longer preserves case for column names and other identifiers. SELECT * FROM t; c | c ---+--- 1 | 1 (1 row)
  • 動的データマスキングまたは行レベルのセキュリティポリシーがアタッチされたテーブルをクエリする標準ユーザーには、デフォルトの enable_case_sensitive_identifier 設定を使用することをお勧めします。行レベルのセキュリティの詳細については、「行レベルのセキュリティ」を参照してください。動的データマスキングの詳細については、「動的データマスキング」を参照してください。