Ansicht TABLES¶
In dieser Ansicht des Information Schema wird eine Zeile für jede Tabelle und Ansicht in der angegebenen (oder aktuellen) Datenbank angezeigt, einschließlich der Ansichten im INFORMATION_SCHEMA-Schema selbst.
- Siehe auch:
Ansicht COLUMNS, Ansicht VIEWS, Ansicht TABLES (Account Usage)
Spalten¶
Spaltenname |
Datentyp |
Beschreibung |
---|---|---|
TABLE_CATALOG |
TEXT |
Datenbank, zu der die Tabelle gehört. |
TABLE_SCHEMA |
TEXT |
Schema, zu dem die Tabelle gehört. |
TABLE_NAME |
TEXT |
Name der Tabelle. |
TABLE_OWNER |
TEXT |
Name der Rolle, der die Tabelle gehört. |
TABLE_TYPE |
TEXT |
Gibt den Tabellentyp an. Gültige Werte sind |
IS_TRANSIENT |
TEXT |
Gibt an, ob es sich um eine transiente Tabelle handelt. |
CLUSTERING_KEY |
TEXT |
Gruppierungsschlüssel für die Tabelle. |
ROW_COUNT |
NUMBER |
Anzahl der Zeilen in der Tabelle. |
BYTES |
NUMBER |
Anzahl der Bytes, auf die bei einem Scan der Tabelle zugegriffen wird. |
RETENTION_TIME |
NUMBER |
Anzahl der Tage, während der historische Daten für Time Travel aufbewahrt werden. |
SELF_REFERENCING_COLUMN_NAME |
TEXT |
Nicht anwendbar für Snowflake. |
REFERENCE_GENERATION |
TEXT |
Nicht anwendbar für Snowflake. |
USER_DEFINED_TYPE_CATALOG |
TEXT |
Nicht anwendbar für Snowflake. |
USER_DEFINED_TYPE_SCHEMA |
TEXT |
Nicht anwendbar für Snowflake. |
USER_DEFINED_TYPE_NAME |
TEXT |
Nicht anwendbar für Snowflake. |
IS_INSERTABLE_INTO |
TEXT |
Nicht anwendbar für Snowflake. |
IS_TYPED |
TEXT |
Nicht anwendbar für Snowflake. |
COMMIT_ACTION |
TEXT |
Nicht anwendbar für Snowflake. |
CREATED |
TIMESTAMP_LTZ |
Erstellungszeit der Tabelle. |
LAST_ALTERED |
TIMESTAMP_LTZ |
Datum und Uhrzeit der letzten Änderung des Objekts durch eine DML, DDL oder eine Operation mit Metadaten im Hintergrund. Siehe Nutzungshinweise. |
LAST_DDL |
TIMESTAMP_LTZ |
Zeitstempel der letzten DDL-Operation, die auf der Tabelle oder Ansicht ausgeführt wurde. Alle unterstützten DDL-Operationen auf der Tabelle bzw. Ansicht aktualisieren dieses Feld:
Alle ALTER TABLE-Operationen führen zur Aktualisierung dieses Feldes, einschließlich des Setzens oder Entfernens eines Tabellenparameters (z. B. COMMENT, DATA_RETENTION_TIME usw.), und zu Änderungen an den Tabellenspalten (ADD/MODIFY/RENAME/DROP). Weitere Informationen dazu finden Sie in den Nutzungshinweisen. |
LAST_DDL_BY |
TEXT |
Der aktuelle Benutzername des Benutzers, der die letzte DDL-Operation ausgeführt hat. Wenn der Benutzer gelöscht wurde, wird Bei gelöschten Benutzern können Sie die |
AUTO_CLUSTERING_ON |
BOOLEAN |
Gibt an, ob das automatische Clustering für die Tabelle aktiviert ist. |
COMMENT |
TEXT |
Kommentar zu dieser Tabelle. |
IS_TEMPORARY |
TEXT |
Gibt an, ob es sich um eine temporäre Tabelle handelt. Gültige Werte sind |
IS_ICEBERG |
TEXT |
Gibt an, ob die Tabelle eine Iceberg-Tabelle ist. Gültige Werte sind |
IS_DYNAMIC |
TEXT |
Gibt an, ob die Tabelle eine dynamische Tabelle ist. Gültige Werte sind |
IS_IMMUTABLE |
TEXT |
Gibt an, ob die Tabelle mit der Eigenschaft READ ONLY erstellt wurde. Gültige Werte sind |
Nutzungshinweise¶
In der Ansicht werden nur Objekte angezeigt, für die der aktuellen Rolle in der Sitzung Zugriffsrechte erteilt wurden. Die Ansicht berücksichtigt nicht die MANAGE GRANTS-Berechtigung und kann daher weniger Informationen anzeigen als ein SHOW-Befehl, wenn beide von einer Rolle ausgeführt werden, der die MANAGE GRANTS-Berechtigung erteilt wurde.
Dieses Verhalten gilt auch für andere Berechtigungen auf Kontoebene und für Information Schema-Ansichten, für die es einen entsprechenden SHOW-Befehl gibt.
Das Abfragen der sum(bytes) für eine Tabelle stellt nicht die gesamte Speichernutzung dar, da der Betrag keine Verwendung von Time Travel und Fail-safe enthält.
Die Ansicht enthält keine Tabellen, die entfernt wurden. Um entfernte Tabellen anzuzeigen, verwenden Sie stattdessen SHOW TABLES.
Um nur Tabellen in Ihren Abfragen anzuzeigen, führen Sie eine Filterung mit einer WHERE-Klausel aus, z. B.:
... WHERE table_schema != 'INFORMATION_SCHEMA'
Die Verwendung des Wertes in der Spalte LAST_ALTERED für Time Travel wird nicht empfohlen und kann aus den folgenden Gründen unerwartete Ergebnisse liefern:
Time Travel kann nur verwendet werden, um historische Daten abzufragen, die durch eine DML-Operation geändert wurden.
Die Spalte LAST_ALTERED enthält sowohl die DML- als auch die DDL-Operationen (siehe den nächsten Nutzungshinweis).
Bei DML-Operationen ist der Wert in der Spalte LAST_ALTERED der Zeitstempel zu Beginn der Ausführung der Anweisung und nicht der Zeitpunkt des Commits der Transaktion, die diese Anweisung enthält.
Die Spalte LAST_ALTERED wird aktualisiert, wenn die folgenden Operationen auf einem Objekt ausgeführt werden:
DDL-Operationen
DML-Operationen (nur für Tabellen) Diese Spalte wird auch dann aktualisiert, wenn keine Zeilen von der DML-Anweisung betroffen sind.
Von Snowflake ausgeführte Wartungsoperationen auf Metadaten im Hintergrund.
Bei Ansichten und Tabellen verwenden Sie die Spalte LAST_DDL, um den Zeitpunkt der letzten Änderung an einem Objekt zu erfahren.
Der Wert in der Spalte LAST_DDL wird wie folgt aktualisiert:
Wenn eine Tabelle oder Ansicht erstellt wird, ist der LAST_DDL-Zeitstempel derselbe wie der CREATED-Zeitstempel.
Wenn eine Tabelle oder Ansicht gelöscht wird, ist der LAST_DDL-Zeitstempel derselbe wie der DELETED-Zeitstempel.
Die letzten DDL-Daten sind nicht verfügbar für Operationen, die vor dem Hinzufügen der Spalten stattgefunden haben. Die neuen DDL-Felder enthalten so lange
null
-Werte, bis eine DDL-Operation ausgeführt wird.Bei replizierten Datenbanken werden die Felder LAST_DDL und LAST_DDL_BY nur für Objekte der Primärdatenbank aktualisiert. Nach dem Failover werden die Felder LAST_DDL und LAST_DDL_BY für DDL-Operationen von Tabellen und Ansichten der neu heraufgestuften Primärdatenbank aktualisiert. Diese Felder bleiben bei Objekten der nun Sekundärdatenbank unverändert.
Bei Objekten in Sekundärdatenbanken, die während einer Aktualisierungsoperation neu erstellt wurden, sind diese Felder
null
.
Die Spalte LAST_ALTERED gibt nicht unbedingt den letzten Aktualisierungszeitpunkt für externe Tabellen an. Um den letzten Aktualisierungszeitpunkt für eine automatisch aktualisierte externe Tabelle abzurufen, können Sie die Funktion SYSTEM$EXTERNAL_TABLE_PIPE_STATUS verwenden, die Informationen wie den Zeitstempel der letzten Datei, die Snowflake registriert hat, zurückgibt.
Beispiele¶
Rufen Sie die Größe (in Byte) aller Tabellen in allen Schemas der Datenbank mydatabase
ab:
SELECT table_schema, SUM(bytes) FROM mydatabase.INFORMATION_SCHEMA.TABLES GROUP BY TABLE_SCHEMA;