USE SCHEMA¶
セッションのアクティブ/現在のスキーマを指定します。
データベースがセッションに指定されていない場合、クエリで参照されるオブジェクトおよびセッションで実行される他の SQL ステートメントは、(
db_name.schema_name.object_name
の形式で)オブジェクトにデータベースおよびスキーマ(名前空間 とも呼ばれる)で完全修飾する必要があります。完全修飾オブジェクト名の詳細については、 オブジェクト名の解決 をご参照ください。セッションにデータベースが指定されているが、セッションにスキーマが指定されていない場合、セッションで実行されるクエリやその他の SQL ステートメントで参照されるオブジェクトは、オブジェクトのスキーマで(
schema_name.object_name
の形式で)修飾する必要があります。データベースとスキーマがユーザー・セッションに指定されている場合、 SQL ステートメントとクエリでは、修飾されていないオブジェクト名が許可されます。
- こちらもご参照ください。
構文¶
USE [ SCHEMA ] [<db_name>.]<name>
パラメーター¶
[db_name.]name
セッションに使用するスキーマの識別子を指定します。識別子にスペースまたは特殊文字が含まれる場合、文字列全体を二重引用符で囲む必要があります。二重引用符で囲まれた識別子も大文字と小文字が区別されます。
スキーマ名が完全修飾されている場合、 SCHEMA キーワードはオプションです(
db_name.schema_name
の形式)。ユーザー・セッションでデータベースが指定され、 SCHEMA キーワードが含まれている場合、データベース名(
db_name
)はオプションです。
例¶
ユーザー・セッションで指定されたデータベースで myschema
スキーマを使用します。
USE SCHEMA myschema;
mydb
データベースで myschema
スキーマを使用します。
USE mydb.myschema;
次の例は、非修飾名を使用してオブジェクトを参照するコマンドが、スキーマを切り替える USE コマンドの後に異なる出力を生成する方法を示しています。テーブル、テーブルデータ、ビュー、ユーザー定義関数などは、スキーマによって異なります。
SHOW TABLES コマンドが schema_one
のコンテキストで実行される場合は、そのスキーマのオブジェクトを反映した出力が生成されます。
USE SCHEMA schema_one;
SHOW TABLES ->> SELECT "created_on", "name" FROM $1 ORDER BY "created_on";
+-------------------------------+-----------+
| created_on | name |
|-------------------------------+-----------|
| 2025-07-13 23:48:49.129 -0700 | TABLE_ABC |
| 2025-07-13 23:49:50.329 -0700 | TABLE_DEF |
+-------------------------------+-----------+
USE コマンドが schema_two
スキーマに切り替えた後、SHOW TABLES コマンドは異なるオブジェクトのセットを反映した出力を生成します。
USE SCHEMA schema_two;
SHOW TABLES ->> SELECT "created_on", "name" FROM $1 ORDER BY "created_on";
+-------------------------------+-----------+
| created_on | name |
|-------------------------------+-----------|
| 2025-07-13 23:52:06.144 -0700 | TABLE_IJK |
| 2025-07-13 23:53:29.851 -0700 | TABLE_XYZ |
+-------------------------------+-----------+
次の例では、あるスキーマから別のスキーマに変更し、元のスキーマに戻ります。元のスキーマの名前は変数に格納されます。次のコマンドを実行します。
SELECT CURRENT_SCHEMA();
SET original_schema = (SELECT CURRENT_SCHEMA());
USE SCHEMA schema_two;
SELECT CURRENT_SCHEMA();
USE SCHEMA IDENTIFIER($original_schema);
SELECT CURRENT_SCHEMA();
これらのコマンドの出力は、現在のスキーマの値がどのように変化するかを示しています。
>SELECT CURRENT_SCHEMA();
+------------+
| SCHEMA_ONE |
+------------+
>SET original_schema = (SELECT CURRENT_SCHEMA());
>USE SCHEMA schema_two;
>SELECT CURRENT_SCHEMA();
+------------+
| SCHEMA_TWO |
+------------+
>USE SCHEMA IDENTIFIER($original_schema);
>SELECT CURRENT_SCHEMA();
+------------+
| SCHEMA_ONE |
+------------+