Vue TABLES¶
Cette vue du schéma d’information affiche une ligne pour chaque table et vue dans la base de données spécifiée (ou actuelle), y compris les vues du schéma INFORMATION_SCHEMA lui-même.
- Voir aussi :
Vue COLUMNS, Vue VIEWS, Vue TABLES (Account Usage)
Colonnes¶
Nom de la colonne |
Type de données |
Description |
---|---|---|
TABLE_CATALOG |
TEXT |
Base de données à laquelle la table appartient. |
TABLE_SCHEMA |
TEXT |
Schéma auquel la table appartient. |
TABLE_NAME |
TEXT |
Nom de la table. |
TABLE_OWNER |
TEXT |
Nom du rôle qui possède la table. |
TABLE_TYPE |
TEXT |
Indique le type de table. Les valeurs valides sont |
IS_TRANSIENT |
TEXT |
Indique s’il s’agit d’une table transitoire. |
CLUSTERING_KEY |
TEXT |
Clé de clustering pour la table. |
ROW_COUNT |
NUMBER |
Nombre de lignes de la table. |
BYTES |
NUMBER |
Nombre d’octets déterminé lors de l’analyse de la table. |
RETENTION_TIME |
NUMBER |
Nombre de jours de conservation des données historiques pour Time Travel. |
SELF_REFERENCING_COLUMN_NAME |
TEXT |
Non applicable pour Snowflake. |
REFERENCE_GENERATION |
TEXT |
Non applicable pour Snowflake. |
USER_DEFINED_TYPE_CATALOG |
TEXT |
Non applicable pour Snowflake. |
USER_DEFINED_TYPE_SCHEMA |
TEXT |
Non applicable pour Snowflake. |
USER_DEFINED_TYPE_NAME |
TEXT |
Non applicable pour Snowflake. |
IS_INSERTABLE_INTO |
TEXT |
Non applicable pour Snowflake. |
IS_TYPED |
TEXT |
Non applicable pour Snowflake. |
COMMIT_ACTION |
TEXT |
Non applicable pour Snowflake. |
CREATED |
TIMESTAMP_LTZ |
Heure de création de la table. |
LAST_ALTERED |
TIMESTAMP_LTZ |
Date et heure de la dernière modification de l’objet par un DML, un DDL ou une opération de métadonnées en arrière-plan. Consultez Notes sur l’utilisation. |
LAST_DDL |
TIMESTAMP_LTZ |
Horodatage de la dernière opération DDL effectuée sur la table ou la vue. Toutes les opérations de table/vue DDL prises en charge mettent à jour ce champ :
Toutes les opérations effectuées sur ALTER TABLE mettent à jour ce champ, y compris la définition ou la suppression d’un paramètre de table (par exemple, COMMENT, DATA_RETENTION_TIME, etc.) et les modifications apportées aux colonnes de la table (ADD / MODIFY / RENAME / DROP). Pour plus d’informations, consultez les notes sur l’utilisation ci-dessus. |
LAST_DDL_BY |
TEXT |
Le nom d’utilisateur actuel de l’utilisateur qui a exécuté la dernière opération DDL. Si l’utilisateur a été exclu, affichez Pour les utilisateurs exclus, vous pouvez joindre |
AUTO_CLUSTERING_ON |
BOOLEAN |
Indique si le clustering automatique est activé pour la table. |
COMMENT |
TEXT |
Commentaire pour cette table. |
IS_TEMPORARY |
TEXT |
Indique s’il s’agit d’une table temporaire. Les valeurs valides sont |
IS_ICEBERG |
TEXT |
Indique si la table est une table Iceberg. Les valeurs valides sont |
IS_DYNAMIC |
TEXT |
Indique si la table est une table dynamique. Les valeurs valides sont |
IS_IMMUTABLE |
TEXT |
Indique si la table a été créée avec la propriété READ ONLY. Les valeurs valides sont |
Notes sur l’utilisation¶
La vue n’affiche que les objets pour lesquels le rôle actuel de la session s’est vu accorder des privilèges d’accès. La vue n’honore pas le privilège MANAGE GRANTS et peut donc afficher moins d’informations qu’une commande SHOW lorsque les deux sont exécutées par un rôle auquel le privilège MANAGE GRANTS a été accordé.
Ce comportement s’applique également aux autres privilèges au niveau du compte et aux vues Information Schema pour lesquelles il existe une commande SHOW correspondante.
L’interrogation de la somme (octets) d’une table ne représente pas l’utilisation totale du stockage, car la quantité n’inclut pas l’utilisation de Time Travel et Fail-safe.
La vue n’inclut pas les tables qui ont été détruites. Pour afficher les tables détruites, utilisez SHOW TABLES à la place.
Pour afficher uniquement les tables de vos requêtes, filtrez à l’aide d’une clause WHERE, par ex. :
... WHERE table_schema != 'INFORMATION_SCHEMA'
Utiliser la valeur de la colonne LAST_ALTERED pour Time Travel n’est pas recommandé et peut renvoyer des résultats inattendus pour les raisons suivantes :
Time Travel ne peut être utilisé que pour interroger des données historiques modifiées par une opération DML.
La colonne LAST_ALTERED comprend à la fois les opérations DML et DDL (voir les notes sur l’utilisation suivantes).
Pour les opérations DML, la valeur de la colonne LAST_ALTERED est l’horodatage au début de l’exécution de l’instruction plutôt que l’heure de validation de la transaction contenant cette instruction.
La colonne LAST_ALTERED est mise à jour lorsque les opérations suivantes sont effectuées sur un objet :
DDL opérations.
DML opérations (pour les tables uniquement). Cette colonne est mise à jour même si aucune ligne n’est affectée par l’instruction DML.
Opérations de maintenance des métadonnées en arrière-plan effectuées par Snowflake.
Pour les vues et les tables, utilisez la colonne LAST_DDL pour connaître l’heure de la dernière modification d’un objet.
La valeur de la colonne LAST_DDL est mise à jour comme suit :
Lors de la création d’une table ou d’une vue, l’horodatage LAST_DDL est identique à l’horodatage CREATED.
Lorsqu’une table ou une vue est exclue, l’horodatage LAST_DDL est identique à l’horodatage DELETED.
Les dernières données DDL ne sont pas disponibles pour les opérations qui ont eu lieu avant que les colonnes ne soient ajoutées. Les nouveaux champs DDL contiennent
null
jusqu’à ce qu’une opération DDL soit exécutée.Pour les bases de données répliquées, les champs LAST_DDL et LAST_DDL_BY ne sont mis à jour que pour les objets de la base de données principale. Après le basculement, les champs LAST_DDL et LAST_DDL_BY sont mis à jour pour les opérations DDL pour les tables et les vues de la base de données principale nouvellement promue. Ces champs resteront inchangés pour les objets de la base de données désormais secondaire.
Pour les objets des bases de données secondaires qui sont nouvellement créés lors d’une opération d’actualisation, ces champs sont
null
.
La colonne LAST_ALTERED n’indique pas nécessairement l’heure de la dernière actualisation pour les tables externes. Pour récupérer l’heure de la dernière actualisation d’une table externe actualisée automatiquement, vous pouvez utiliser la fonction SYSTEM$EXTERNAL_TABLE_PIPE_STATUS qui renvoie des informations telles que l’horodatage du dernier fichier enregistré par Snowflake.
Exemples¶
Récupérer la taille (en octets) de toutes les tables dans tous les schémas de la base de données mydatabase
:
SELECT table_schema, SUM(bytes) FROM mydatabase.INFORMATION_SCHEMA.TABLES GROUP BY TABLE_SCHEMA;