DESCRIBE TABLE

Décrit soit les colonnes d’une table, soit l’ensemble des propriétés de zone de préparation de la table (valeurs actuelles et valeurs par défaut).

DESCRIBE peut être abrégé en DESC.

Voir aussi :

DROP TABLE , ALTER TABLE , CREATE TABLE , SHOW TABLES

DESCRIBE VIEW

Syntaxe

{ DESCRIBE | DESC } TABLE <name> [ TYPE =  { COLUMNS | STAGE } ]
Copy

Paramètres

name

Indique l’identificateur de la table à décrire. Si l’identificateur contient des espaces ou des caractères spéciaux, toute la chaîne doit être délimitée par des guillemets doubles. Les identificateurs entre guillemets doubles sont également sensibles à la casse.

TYPE = COLUMNS | STAGE

Indique s’il faut afficher les colonnes de la table ou l’ensemble de propriétés de zones de préparation (y compris leurs valeurs actuelles et par défaut) pour la table.

Par défaut : TYPE = COLUMNS

Notes sur l’utilisation

  • Cette commande n’affiche pas les paramètres d’objet d’une table. Au lieu de cela, utilisez SHOW PARAMETERS IN TABLE.

  • DESCRIBE TABLE et DESCRIBE VIEW sont interchangeables. Les deux commandes renvoient des détails sur la table ou la vue spécifiée ; cependant, TYPE = STAGE ne s’applique pas aux vues car les vues n’ont pas de propriétés de zone de préparation.

  • Si l’évolution du schéma est activée pour la table, la sortie contient une colonne SchemaEvolutionRecord. Cette colonne a été introduite avec le Bundle 2023_08 (activé de manière générale). Pour plus d’informations, voir Évolution du schéma de table.

  • La sortie inclut une colonne policy name pour indiquer la politique de masquage définie sur la colonne.

    Si une politique de masquage n’est pas définie sur la colonne ou si le compte Snowflake n’est pas Enterprise Edition ou supérieur, Snowflake renvoie NULL.

  • La sortie inclut une colonne privacy domain pour indiquer la politique de confidentialité définie sur la colonne.

    Si une politique de confidentialité n’est pas définie sur la colonne ou si le compte Snowflake n’est pas Enterprise Edition ou supérieur, Snowflake renvoie NULL.

  • Pour post-traiter la sortie de cette commande, vous pouvez utiliser la fonction RESULT_SCAN qui traite la sortie comme une table qui peut être interrogée.

Sortie

Quand TYPE = COLUMNS, la sortie de la commande fournit les propriétés et métadonnées suivantes :

Colonne

Description

name

Nom de la colonne dans la table.

type

Type de données de la colonne dans la table.

kind

Cette valeur est toujours COLUMN pour les tables Snowflake.

null?

Si la colonne accepte des valeurs NULL (Y ou N).

default

La valeur par défaut de la colonne, le cas échéant (sinon NULL).

primary key

Si la colonne est la clé primaire (ou une partie d’une clé primaire à plusieurs colonnes ; Y ou N).

unique key

Si la colonne a une contrainte UNIQUE (Y ou N).

check

Réservé pour une utilisation future.

expression

Réservé pour une utilisation future.

comment

Le commentaire défini pour la colonne, le cas échéant (sinon NULL).

policy name

La politique de masquage définie pour la colonne, le cas échéant (sinon NULL).

privacy domain

Le domaine de confidentialité défini pour la colonne, le cas échéant (sinon NULL).

schema evolution record

Enregistre des informations sur la dernière évolution de schéma déclenchée pour une colonne de table donnée. Cette colonne contient les sous-zones suivantes :

  • EvolutionType: Le type de l’évolution du schéma déclenchée (ADD_COLUMN ou DROP_NOT_NULL).

  • EvolutionMode: Le mécanisme d’ingestion déclencheur (COPY ou SNOWPIPE).

  • FileName: Le nom du fichier qui a déclenché l’évolution.

  • TriggeringTime : heure approximative à laquelle la colonne a évolué.

  • QueryId ou PipeID: Un identificateur unique de la requête ou du canal déclencheur (QUERY ID pour COPY ou PIPE ID pour SNOWPIPE).

Quand TYPE = STAGE, la sortie de la commande fournit les valeurs actuelles et par défaut des propriétés de zone de préparation de la table. Voir Exemple : décrire les propriétés de la zone de préparation.

Exemples

Les exemples suivants montrent comment décrire les tables.

Exemple : décrire une table comportant des contraintes et d’autres attributs de colonne.

Créez un tableau avec cinq colonnes, dont deux avec des contraintes. Donnez à une colonne une valeur DEFAULT et un commentaire.

CREATE OR REPLACE TABLE desc_example(
  c1 INT PRIMARY KEY,
  c2 INT,
  c3 INT UNIQUE,
  c4 VARCHAR(30) DEFAULT 'Not applicable' COMMENT 'This column is rarely populated',
  c5 VARCHAR(100));
Copy

Décrire les colonnes de la table :

DESCRIBE TABLE desc_example;
Copy
+------+--------------+--------+-------+------------------+-------------+------------+-------+------------+---------------------------------+-------------+----------------+-------------------------+
| name | type         | kind   | null? | default          | primary key | unique key | check | expression | comment                         | policy name | privacy domain | schema evolution record |
|------+--------------+--------+-------+------------------+-------------+------------+-------+------------+---------------------------------+-------------+----------------+-------------------------|
| C1   | NUMBER(38,0) | COLUMN | N     | NULL             | Y           | N          | NULL  | NULL       | NULL                            | NULL        | NULL           | NULL                    |
| C2   | NUMBER(38,0) | COLUMN | Y     | NULL             | N           | N          | NULL  | NULL       | NULL                            | NULL        | NULL           | NULL                    |
| C3   | NUMBER(38,0) | COLUMN | Y     | NULL             | N           | Y          | NULL  | NULL       | NULL                            | NULL        | NULL           | NULL                    |
| C4   | VARCHAR(30)  | COLUMN | Y     | 'Not applicable' | N           | N          | NULL  | NULL       | This column is rarely populated | NULL        | NULL           | NULL                    |
| C5   | VARCHAR(100) | COLUMN | Y     | NULL             | N           | N          | NULL  | NULL       | NULL                            | NULL        | NULL           | NULL                    |
+------+--------------+--------+-------+------------------+-------------+------------+-------+------------+---------------------------------+-------------+----------------+-------------------------+

Exemple : décrire une table qui a une politique de masquage sur une colonne

Créer une politique de masquage normale, puis recréez la table desc_example avec la politique de masquage définie sur une colonne. (Pour exécuter cet exemple, créez d’abord la politique de masquage email_mask.)

CREATE OR REPLACE TABLE desc_example(
  c1 INT PRIMARY KEY,
  c2 INT,
  c3 INT UNIQUE,
  c4 VARCHAR(30) DEFAULT 'Not applicable' COMMENT 'This column is rarely populated',
  c5 VARCHAR(100) WITH MASKING POLICY email_mask);
Copy
+------+--------------+--------+-------+------------------+-------------+------------+-------+------------+---------------------------------+---------------------------------+----------------+-------------------------+
| name | type         | kind   | null? | default          | primary key | unique key | check | expression | comment                         | policy name                     | privacy domain | schema evolution record |
|------+--------------+--------+-------+------------------+-------------+------------+-------+------------+---------------------------------+---------------------------------+----------------|-------------------------|
| C1   | NUMBER(38,0) | COLUMN | N     | NULL             | Y           | N          | NULL  | NULL       | NULL                            | NULL                            | NULL           | NULL                    |
| C2   | NUMBER(38,0) | COLUMN | Y     | NULL             | N           | N          | NULL  | NULL       | NULL                            | NULL                            | NULL           | NULL                    |
| C3   | NUMBER(38,0) | COLUMN | Y     | NULL             | N           | Y          | NULL  | NULL       | NULL                            | NULL                            | NULL           | NULL                    |
| C4   | VARCHAR(30)  | COLUMN | Y     | 'Not applicable' | N           | N          | NULL  | NULL       | This column is rarely populated | NULL                            | NULL           | NULL                    |
| C5   | VARCHAR(100) | COLUMN | Y     | NULL             | N           | N          | NULL  | NULL       | NULL                            | HT_SENSORS.HT_SCHEMA.EMAIL_MASK | NULL           | NULL                    |
+------+--------------+--------+-------+------------------+-------------+------------+-------+------------+---------------------------------+---------------------------------+----------------+-------------------------+

Exemple : décrire les propriétés de la zone de préparation

Décrivez les propriétés de la zone de préparation actuelle pour la même table (seules les cinq premières lignes sont affichées ici) :

DESCRIBE TABLE desc_example TYPE = STAGE;
Copy
+--------------------+--------------------------------+---------------+-----------------+------------------+
| parent_property    | property                       | property_type | property_value  | property_default |
|--------------------+--------------------------------+---------------+-----------------+------------------|
| STAGE_FILE_FORMAT  | TYPE                           | String        | CSV             | CSV              |
| STAGE_FILE_FORMAT  | RECORD_DELIMITER               | String        | \n              | \n               |
| STAGE_FILE_FORMAT  | FIELD_DELIMITER                | String        | ,               | ,                |
| STAGE_FILE_FORMAT  | FILE_EXTENSION                 | String        |                 |                  |
| STAGE_FILE_FORMAT  | SKIP_HEADER                    | Integer       | 0               | 0                |
...