SHOW SCHEMAS¶
Listet die Schemas auf, für die Sie Zugriffsrechte haben, einschließlich entfernter Schemas, die sich noch innerhalb der Aufbewahrungsfrist für Time Travel befinden und daher nicht entfernt werden können. Mit dem Befehl können Sie Schemas für die aktuelle/angegebene Datenbank oder für Ihr gesamtes Konto auflisten.
Die Ausgabe gibt Schemametadaten und -eigenschaften zurück, die lexikographisch nach Datenbank- und Schemanamen geordnet sind. Dies ist wichtig zu beachten, wenn Sie die Ergebnisse mit den bereitgestellten Filtern filtern möchten.
- Siehe auch:
CREATE SCHEMA, ALTER SCHEMA, DESCRIBE SCHEMA, DROP SCHEMA, UNDROP SCHEMA
SCHEMATA-Ansicht (Information Schema)
Syntax¶
SHOW [ TERSE ] SCHEMAS
[ HISTORY ]
[ LIKE '<pattern>' ]
[ IN { ACCOUNT | APPLICATION <app_name> | DATABASE [ <db_name> ] } ]
[ STARTS WITH '<name_string>' ]
[ LIMIT <rows> [ FROM '<name_string>' ] ]
Parameter¶
TERSE
Gibt eine Ausgabe zurück, die nur die folgenden Spalten enthält:
created_on
name
kind
database_name
schema_name
Beachten Sie, dass
kind
undschema_name
immerNULL
anzeigen, dakind
nicht für Schemas gilt undschema_name
beiname
überflüssig ist.Standard: Kein Wert (alle Spalten sind in der Ausgabe enthalten)
HISTORY
Umfasst entfernte Schemas, die noch nicht gelöscht wurden (d. h. sie befinden sich noch innerhalb ihrer jeweiligen Aufbewahrungsfristen für Time Travel). Wenn mehrere Versionen eines gelöschten Schemas vorhanden sind, zeigt die Ausgabe für jede Version eine Zeile an. Die Ausgabe enthält außerdem eine zusätzliche
dropped_on
-Spalte, die Folgendes anzeigt:Datums- und Zeitstempel (für gelöschte Schemas)
NULL
(für aktive Schemas).
Kein Wert (gelöschte Schemas sind nicht in der Ausgabe enthalten)
LIKE 'pattern'
Filtert optional die Befehlsausgabe nach dem Objektnamen. Der Filter verwendet einen Musterabgleich ohne Berücksichtigung der Groß-/Kleinschreibung, aber mit Unterstützung von SQL-Platzhalterzeichen (
%
und_
).Die folgenden Muster geben beispielsweise die gleichen Ergebnisse zurück:
... LIKE '%testing%' ...
... LIKE '%TESTING%' ...
. Standard: Kein Wert (die Ausgabe wird nicht gefiltert).
IN { ACCOUNT | APPLICATION app_name | [ DATABASE ] [ db_name ] }
Gibt den Bereich des Befehls an, mit dem festgelegt wird, ob der Befehl Datensätze nur für die aktuelle/angegebene Datenbank oder für Ihr gesamtes Konto auflistet.
Das Schlüsselwort
APPLICATION
ist nicht erforderlich, aber es gibt den Geltungsbereich für die benannte Snowflake Native App an.Das Schlüsselwort
DATABASE
ist nicht erforderlich. Sie können den Gültigkeitsbereich festlegen, indem Sie nur den Datenbanknamen angeben. Ebenso ist der Datenbankname nicht erforderlich, wenn für die Sitzung derzeit eine Datenbank verwendet wird.Standard: Abhängig davon, ob für die Sitzung aktuell eine Datenbank verwendet wird:
Datenbank:
DATABASE
ist der Standardwert (d. h. der Befehl gibt die Objekte zurück, für die Sie Berechtigungen zum Anzeigen in der Datenbank haben).Keine Datenbank:
ACCOUNT
ist die Standardeinstellung (d. h. der Befehl gibt die Objekte zurück, für die Sie Berechtigungen zum Anzeigen in Ihrem Konto haben).
STARTS WITH 'name_string'
Filtert die Befehlsausgabe optional anhand der Zeichen, die am Anfang des Objektnamens angezeigt werden. Die Zeichenfolge muss in einfache Anführungszeichen gesetzt werden, wobei zwischen Groß-/Kleinschreibung unterschieden wird.
Die folgenden Zeichenfolgen geben beispielsweise unterschiedliche Ergebnisse zurück:
... STARTS WITH 'B' ...
... STARTS WITH 'b' ...
. Standard: Kein Wert (die Ausgabe wird nicht gefiltert)
LIMIT rows [ FROM 'name_string' ]
Schränkt optional die maximale Anzahl der zurückgegebenen Zeilen ein und ermöglicht gleichzeitig die „Paginierung“ der Ergebnisse. Die tatsächliche Anzahl der zurückgegebenen Zeilen kann geringer sein als das angegebene Limit. Beispielsweise ist die Anzahl der vorhandenen Objekte geringer als das angegebene Limit.
Die optionale Unterklausel
FROM 'name_string'
dient als „Cursor“ für die Ergebnisse. Dies ermöglicht das Abrufen der angegebenen Anzahl von Zeilen nach der ersten Zeile, deren Objektname mit der angegebenen Zeichenfolge übereinstimmt:Die Zeichenfolge muss in einfache Anführungszeichen gesetzt werden, wobei zwischen Groß-/Kleinschreibung unterschieden wird.
Die Zeichenfolge muss nicht den vollständigen Datenbanknamen enthalten. Partielle Namen werden unterstützt.
Standard: Kein Wert (die Ausgabe wird nicht begrenzt)
Bemerkung
Bei SHOW-Befehlen, die sowohl die
FROM 'name_string'
- als auch dieSTARTS WITH 'name_string'
-Klausel unterstützen, können Sie diese beiden Klauseln in derselben Anweisung kombinieren. Beide Bedingungen müssen jedoch erfüllt sein, da sie sich sonst gegenseitig aufheben und keine Ergebnisse zurückgegeben werden.Außerdem werden Objekte in lexikographischer Reihenfolge nach Namen zurückgegeben. Daher gibt
FROM 'name_string'
nur Zeilen mit einem höheren lexikografischen Wert zurück als die vonSTARTS WITH 'name_string'
zurückgegebenen Zeilen.Beispiel:
... STARTS WITH 'A' LIMIT ... FROM 'B'
würde keine Ergebnisse zurückgeben.... STARTS WITH 'B' LIMIT ... FROM 'A'
würde keine Ergebnisse zurückgeben.... STARTS WITH 'A' LIMIT ... FROM 'AB'
würde Ergebnisse zurückgeben (wenn Zeilen mit den Eingabezeichenfolgen übereinstimmen).
Nutzungshinweise¶
Wenn Sie den Geltungsbereich entweder auf
APPLICATION
oder die Datenbank mit dem NamenSNOWFLAKE
festlegen, gibt die Spalteowner
als Eigentümer für das Schema namensLOCAL
den WertSNOWFLAKE
zurück. Beispiel:SHOW SCHEMAS IN APPLICATION my_app; SHOW SCHEMAS IN DATABASE SNOWFLAKE;
Die Spalte
owner
gibt Folgendes zurück:+-----+-------+-----+-----------+-----+ | ... | name | ... | owner | ... | +-----+-------+-----+-----------+-----+ | ... | LOCAL | ... | SNOWFLAKE | ... | +-----+-------+-----+-----------+-----+
Für die Ausführung des Befehls ist kein aktives Warehouse erforderlich.
Der Wert für
LIMIT rows
kann10000
nicht überschreiten. WennLIMIT rows
nicht angegeben wird und das Resultset mehr als 10.000 Zeilen hat, führt der Befehl zu einem Fehler.Um Ergebnisse anzuzeigen, für die mehr als 10.000 Datensätze vorhanden sind, fügen Sie entweder
LIMIT rows
(Zeilen) ein, oder fragen Sie die entsprechende Ansicht im Snowflake Information Schema ab.
Zur Nachbearbeitung der Ausgabe dieses Befehls können Sie die Funktion RESULT_SCAN verwenden, die die Ausgabe wie eine abfragbare Tabelle behandelt.
Beispiele¶
Zeigen Sie alle Schemas in der aktuellen Datenbank mytestdb
an, für die Sie die Berechtigung zum Anzeigen haben:
SHOW SCHEMAS; +---------------------------------+--------------------+------------+------------+---------------+--------+-----------------------------------------------------------+---------+----------------+-----------------+--------+ | created_on | name | is_default | is_current | database_name | owner | comment | options | retention_time | owner_role_type | budget | |---------------------------------+--------------------+------------+------------+---------------+--------+-----------------------------------------------------------+---------+----------------+-----------------+--------+ | Fri, 13 May 2016 17:58:37 -0700 | INFORMATION_SCHEMA | N | N | MYTESTDB | | Views describing the contents of schemas in this database | | 1 | ROLE | NULL | | Wed, 25 Feb 2015 16:16:54 -0800 | PUBLIC | N | Y | MYTESTDB | PUBLIC | | | 1 | ROLE | NULL | +---------------------------------+--------------------+------------+------------+---------------+--------+-----------------------------------------------------------+---------+----------------+-----------------+--------+
Zeigen Sie alle Schemas in der aktuellen Datenbank mytestdb
an, für die Sie die Berechtigung zum Anzeigen haben, einschließlich gelöschter Schemas (dieses Beispiel baut auf den DROP SCHEMA-Beispielen auf):
SHOW SCHEMAS HISTORY; +---------------------------------+--------------------+------------+------------+---------------+--------+-----------------------------------------------------------+---------+----------------+---------------------------------+-----------------+----------+ | created_on | name | is_default | is_current | database_name | owner | comment | options | retention_time | dropped_on | owner_role_type | budget | |---------------------------------+--------------------+------------+------------+---------------+--------+-----------------------------------------------------------+---------+----------------+---------------------------------+-----------------+----------+ | Fri, 13 May 2016 17:59:50 -0700 | INFORMATION_SCHEMA | N | N | MYTESTDB | | Views describing the contents of schemas in this database | | 1 | NULL | | NULL | | Wed, 25 Feb 2015 16:16:54 -0800 | PUBLIC | N | Y | MYTESTDB | PUBLIC | | | 1 | NULL | ROLE | NULL | | Tue, 17 Mar 2015 16:42:29 -0700 | MYSCHEMA | N | N | MYTESTDB | PUBLIC | | | 1 | Fri, 13 May 2016 17:25:32 -0700 | ROLE | MYBUDGET | +---------------------------------+--------------------+------------+------------+---------------+--------+-----------------------------------------------------------+---------+----------------+---------------------------------+-----------------+----------+