SHOW PRIMARY KEYS

Listet Primärschlüssel für die angegebene Tabelle oder für alle Tabellen im aktuellen oder angegebenen Schema oder für alle Tabellen in der aktuellen oder angegebenen Datenbank oder für alle Tabellen im aktuellen Konto auf.

Syntax

SHOW [ TERSE ] PRIMARY KEYS
    [ IN { ACCOUNT | DATABASE [ <database_name> ] | SCHEMA [ <schema_name> ] | TABLE | [ TABLE ] <table_name> } ]
Copy

Parameter

TERSE

Diese Klausel wird syntaktisch akzeptiert, hat aber keine Auswirkungen auf die Ausgabe.

IN { ACCOUNT | DATABASE [ <Datenbankname> ] | SCHEMA [ <Schemaname> ] | TABLE | [ TABLE ] <Tabellenname> }

Gibt den Bereich des Befehls an, mit dem festgelegt wird, ob der Befehl Datensätze nur für die aktuelle/angegebene Datenbank, das aktuelle/angegebene Schema, die aktuelle/angegebene Tabelle oder das aktuelle Konto auflistet.

Wenn Sie das Schlüsselwort ACCOUNT angeben, ruft der Befehl Datensätze für alle Schemas in allen Datenbanken des aktuellen Kontos ab.

Wenn Sie das Schlüsselwort DATABASE angeben, dann gilt Folgendes:

  • Wenn Sie einen Wert für db_name angeben, ruft der Befehl Datensätze für alle Schemas der angegebenen Datenbank ab.

  • Wenn Sie keinen Wert für db_name angeben, dann gilt Folgendes:

    • Wenn es eine aktuelle Datenbank gibt, ruft der Befehl Datensätze für alle Schemas in der aktuellen Datenbank ab.

    • Wenn es keine aktuelle Datenbank gibt, ruft der Befehl Datensätze aller Datenbanken und Schemas im Konto ab.

Wenn Sie das Schlüsselwort SCHEMA angeben, dann gilt Folgendes:

  • Wenn Sie einen qualifizierten Schemanamen angeben (z. B. my_database.my_schema), ruft der Befehl Datensätze für die angegebene Datenbank und das angegebene Schema ab.

  • Wenn Sie einen nicht qualifizierten Wert für schema_name angeben, dann gilt Folgendes:

    • Wenn es eine aktuelle Datenbank gibt, ruft der Befehl Datensätze für das angegebene Schema in der aktuellen Datenbank ab.

    • Wenn keine aktuelle Datenbank vorhanden ist, zeigt der Befehl den Fehler SQL compilation error: Object does not exist, or operation cannot be performed an.

  • Wenn Sie keinen Wert für schema_name angeben, dann gilt Folgendes:

    • Wenn es eine aktuelle Datenbank gibt, dann gilt Folgendes:

      • Wenn es ein aktuelles Schema gibt, dann ruft der Befehl Datensätze für das aktuelle Schema in der aktuellen Datenbank ab.

      • Wenn kein aktuelles Schema vorhanden ist, ruft der Befehl Datensätze für alle Schemas in der aktuellen Datenbank ab.

    • Wenn es keine aktuelle Datenbank gibt, ruft der Befehl Datensätze für alle Datenbanken und alle Schemas im Konto ab.

Wenn Sie das Schlüsselwort TABLE ohne einen Wert für table_name angeben, dann gilt Folgendes:

  • Wenn es eine aktuelle Datenbank gibt, dann gilt Folgendes:

    • Wenn es ein aktuelles Schema gibt, dann ruft der Befehl Datensätze für das aktuelle Schema in der aktuellen Datenbank ab.

    • Wenn kein aktuelles Schema vorhanden ist, ruft der Befehl Datensätze für alle Schemas in der aktuellen Datenbank ab.

  • Wenn es keine aktuelle Datenbank gibt, ruft der Befehl Datensätze für alle Datenbanken und alle Schemas im Konto ab.

Wenn Sie einen <Tabellennamen> (mit oder ohne Schlüsselwort TABLE) angeben, dann gilt Folgendes:

  • Wenn Sie einen vollqualifizierten <Tabellennamen> (z. B. my_database_name.my_schema_name.my_table_name) angeben, dann ruft der Befehl alle Datensätze für die angegebene Tabelle ab.

  • Wenn Sie einen Schema-qualifizierten <Tabellennamen> (z. B. my_schema_name.my_table_name) angeben, dann:

    • Wenn eine aktuelle Datenbank vorhanden ist, ruft der Befehl alle Datensätze für die angegebene Tabelle ab.

    • Wenn keine aktuelle Datenbank vorhanden ist, zeigt der Befehl eine Fehlermeldung ähnlich wie Cannot perform SHOW <Objekttyp>. This session does not have a current database... an.

  • Wenn Sie einen nicht qualifizierten <Tabellennamen> angeben, dann gilt Folgendes:

    • Wenn eine aktuelle Datenbank und ein aktuelles Schema vorhanden sind, dann ruft der Befehl Datensätze für die angegebene Tabelle im aktuellen Schema der aktuellen Datenbank ab.

    • Wenn keine aktuelle Datenbank oder kein aktuelles Schema vorhanden ist, zeigt der Befehl eine Fehlermeldung ähnlich der folgenden an: SQL compilation error: <Objekt> does not exist or not authorized..

Standard: Hängt davon ab, 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).

Nutzungshinweise

  • Für die Ausführung des Befehls ist kein aktives Warehouse erforderlich.

  • Für jeden einspaltigen Primärschlüssel enthält die Ausgabe eine Zeile.

  • Für jeden mehrspaltigen Primärschlüssel enthält die Ausgabe eine Zeile zu jeder Spalte des Primärschlüssels.

  • Wenn ein Konto (oder eine Datenbank oder ein Schema) eine große Anzahl von Tabellen hat, kann das Durchsuchen des gesamten Kontos (oder der Tabelle oder des Schemas) eine erhebliche Menge an Computeressourcen verbrauchen.

  • Zur Weiterverarbeitung der Ausgabe dieses Befehls können Sie die Funktion RESULT_SCAN verwenden, die die Ausgabe wie eine abfragbare Tabelle behandelt.

Wichtig

Denken Sie daran, dass Snowflake Primärschlüsseleinschränkungen als NOT NULL-Einschränkungen behandelt. Snowflake erzwingt keine eindeutigen Werte für Primärschlüssel.

Ausgabe

Die Befehlsausgabe stellt Eigenschaften und Metadaten des Primärschlüssels in den folgenden Spalten bereit:

Spalte

Beschreibung

created_on

Datum und Uhrzeit der Erstellung der Tabelle.

database_name

Datenbank, in der die Tabelle gespeichert ist.

schema_name

Schema, in dem die Tabelle gespeichert ist.

table_name

Name der Tabelle.

column_name

Name der Spalte des Primärschlüssels.

key_sequence

Besteht der Primärschlüssel aus mehreren Spalten, gibt die Zahl in der Spalte key_sequence die Reihenfolge dieser Spalten im Primärschlüssel an. Wenn zum Beispiel der Primärschlüssel als CONSTRAINT pkey1 PRIMARY KEY (column_x, column_y) definiert ist, dann ist die key_sequence-Nummer für column_x 1 und die key_sequence für column_y ist 2.

comment

Der Kommentar (falls vorhanden) zu der Einschränkung, der bei der Erstellung der Einschränkung angegeben wurde.

constraint_name

Der Name der Einschränkung.

Beispiele

show primary keys;

show primary keys in account;

show primary keys in database;

show primary keys in database my_database;

show primary keys in schema;

show primary keys in schema my_schema;

show primary keys in schema my_database.my_schema;

show primary keys in my_table;

show primary keys in my_database.my_schema.my_table;
Copy