カテゴリ:

データベース、スキーマ、共有 DDL

SHOW SCHEMAS

アクセス権限があるスキーマをリストします。これには、Time Travelの保持期間内にあるため削除できないスキーマも含まれます。このコマンドを使用して、現在のデータベースまたは指定されたデータベースのスキーマを一覧表示するか、アカウント全体でスキーマを一覧表示できます。

出力は、データベースとスキーマ名で辞書順に並べられたスキーマメタデータとプロパティを返します。これは、提供されたフィルターを使用して結果をフィルターする場合に注意することが重要です。

こちらもご参照ください:

CREATE SCHEMADROP SCHEMAUNDROP SCHEMA

SCHEMATA ビュー (情報スキーマ)

構文

SHOW [ TERSE ] SCHEMAS [ HISTORY ] [ LIKE '<pattern>' ]
                                   [ IN { ACCOUNT | DATABASE [ <db_name> ] } ]
                                   [ STARTS WITH '<name_string>' ]
                                   [ LIMIT <rows> [ FROM '<name_string>' ] ]

パラメーター

TERSE

次の列のみを含む出力を返します。

  • created_on

  • name

  • kind

  • database_name

  • schema_name

kind はスキーマには適用できず、 schema_namename と重複するため、 kindschema_name は常に NULL を表示することに注意してください。

デフォルト:値なし(出力にすべての列を含む)

HISTORY

まだパージされていない(つまり、それぞれのTime Travel保持期間内にある)ドロップされたスキーマが含まれます。ドロップされたスキーマの複数のバージョンが存在する場合、出力には各バージョンの行が表示されます。出力には、追加の dropped_on 列も含まれ、次を表示します:

  • 日付とタイムスタンプ(ドロップされたスキーマの場合)

  • NULL (アクティブなスキーマの場合)。

デフォルト:値なし(ドロップされたスキーマは出力に 含まれない

LIKE 'パターン'

オブジェクト名でコマンド出力をフィルタリングします。フィルターは、 SQL ワイルドカード文字(% および _)をサポートする、 大文字と小文字を区別しない パターンマッチングを使用します。

たとえば、次のパターンは 同じ 結果を返します。

... LIKE '%testing%' ...
... LIKE '%TESTING%' ...

デフォルト:値なし(フィルタリングは出力に適用されない)

IN ACCOUNT | [ DATABASE ] データベース名

コマンドのスコープを指定します。コマンドのスコープは、コマンドが現在/指定されたデータベースのレコードのみを一覧表示するか、アカウント全体について表示するかを決定します。

DATABASE キーワードは必須ではありません。データベース名のみを指定してスコープを設定できます。同様に、セッションで現在使用中のデータベースがある場合、データベース名は必要ありません。

デフォルト:セッションで現在使用中のデータベースがあるかどうかによって異なります。

  • データベース: DATABASE はデフォルトです(つまり、コマンドは、データベースで表示する権限を持つオブジェクトを返す)。

  • データベースなし: ACCOUNT はデフォルトです(つまり、コマンドは、アカウントで表示する権限を持つオブジェクトを返す)。

STARTS WITH '名前文字列'

オプションで、オブジェクト名の先頭に表示される文字に基づいてコマンド出力をフィルタリングします。文字列は一重引用符で囲む必要があり、 大文字と小文字を区別します。たとえば、次の結果は 異なる 結果を返します。

... STARTS WITH 'B' ...
... STARTS WITH 'b' ...

デフォルト:値なし(フィルタリングは出力に適用されない)

LIMIT [ FROM '名前文字列' ]

オプションで、返される行の最大数を制限すると同時に、結果の「ページネーション」を有効にします。返される実際の行数は、指定された制限より少ない場合があることに注意してください(例えば、既存のオブジェクトの数が指定された制限より少ない)。

オプションの FROM '名前文字列' 副次句は、結果の「カーソル」として効果的に機能します。これにより、指定された文字列と一致するオブジェクト名を持つ最初の行に続く指定された行数を取得できます。

  • 文字列は一重引用符で囲む必要があり、 大文字と小文字を区別します

  • 文字列に完全なオブジェクト名を含める必要はありません。部分的な名前がサポートされています。

デフォルト:値なし(出力に制限は適用されない)

注釈

FROM '名前文字列'STARTS WITH '名前文字列' の両方を同じステートメントで組み合わせることができます。ただし、両方の条件を満たしている必要があります。そうでない場合は、互いにキャンセルされ、結果が返されません。

さらに、オブジェクトは名前の辞書式順序で返されるため、 FROM '名前文字列' は、 STARTS WITH '名前文字列' によって返される行よりも辞書式の値が大きい行のみを返します。

例:

  • ... STARTS WITH 'A' LIMIT ... FROM 'B' は結果を返しません。

  • ... STARTS WITH 'B' LIMIT ... FROM 'A' は結果を返しません。

  • ... STARTS WITH 'A' LIMIT ... FROM 'AB' は結果を返します(入力文字列に一致する行がある場合)。

使用上の注意

  • このコマンドは、実行中のウェアハウスを必要としません。

  • LIMIT の値は 10000 を超えることはできません。 LIMIT が省略され、結果セットが10K行より大きい場合、コマンドはエラーになります。

    10Kを超えるレコードが存在する結果を表示するには、 LIMIT を含めるか、 情報スキーマ の対応するビューをクエリします。

  • このコマンドの出力を後処理するには、 RESULT_SCAN 関数を使用できます。この関数は、出力をクエリ可能なテーブルとして扱います。

表示する権限がある現在のデータベース mytestdb のスキーマすべてを表示します。

SHOW SCHEMAS;

+---------------------------------+--------------------+------------+------------+---------------+--------+-----------------------------------------------------------+---------+----------------+
| created_on                      | name               | is_default | is_current | database_name | owner  | comment                                                   | options | retention_time |
|---------------------------------+--------------------+------------+------------+---------------+--------+-----------------------------------------------------------+---------+----------------|
| Fri, 13 May 2016 17:58:37 -0700 | INFORMATION_SCHEMA | N          | N          | MYTESTDB      |        | Views describing the contents of schemas in this database |         |              1 |
| Wed, 25 Feb 2015 16:16:54 -0800 | PUBLIC             | N          | Y          | MYTESTDB      | PUBLIC |                                                           |         |              1 |
+---------------------------------+--------------------+------------+------------+---------------+--------+-----------------------------------------------------------+---------+----------------+

現在のデータベース mytestdb 内の、ドロップされたスキーマを含む、表示する権限があるすべてのスキーマを表示します(この例は DROP SCHEMA 上に構築)。

SHOW SCHEMAS HISTORY;

+---------------------------------+--------------------+------------+------------+---------------+--------+-----------------------------------------------------------+---------+----------------+---------------------------------+
| created_on                      | name               | is_default | is_current | database_name | owner  | comment                                                   | options | retention_time | dropped_on                      |
|---------------------------------+--------------------+------------+------------+---------------+--------+-----------------------------------------------------------+---------+----------------+---------------------------------|
| Fri, 13 May 2016 17:59:50 -0700 | INFORMATION_SCHEMA | N          | N          | MYTESTDB      |        | Views describing the contents of schemas in this database |         |              1 | NULL                            |
| Wed, 25 Feb 2015 16:16:54 -0800 | PUBLIC             | N          | Y          | MYTESTDB      | PUBLIC |                                                           |         |              1 | NULL                            |
| Tue, 17 Mar 2015 16:42:29 -0700 | MYSCHEMA           | N          | N          | MYTESTDB      | PUBLIC |                                                           |         |              1 | Fri, 13 May 2016 17:25:32 -0700 |
+---------------------------------+--------------------+------------+------------+---------------+--------+-----------------------------------------------------------+---------+----------------+---------------------------------+