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 :
Syntaxe¶
{ DESCRIBE | DESC } TABLE <name> [ TYPE = { COLUMNS | STAGE } ]
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 |
---|---|
|
Nom de la colonne dans la table. |
|
Type de données de la colonne dans la table. |
|
Cette valeur est toujours |
|
Si la colonne accepte des valeurs NULL ( |
|
La valeur par défaut de la colonne, le cas échéant (sinon |
|
Si la colonne est la clé primaire (ou une partie d’une clé primaire à plusieurs colonnes ; |
|
Si la colonne a une contrainte UNIQUE ( |
|
Réservé pour une utilisation future. |
|
Réservé pour une utilisation future. |
|
Le commentaire défini pour la colonne, le cas échéant (sinon |
|
La politique de masquage définie pour la colonne, le cas échéant (sinon |
|
Le domaine de confidentialité défini pour la colonne, le cas échéant (sinon |
|
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 :
|
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));
Décrire les colonnes de la table :
DESCRIBE TABLE desc_example;
+------+--------------+--------+-------+------------------+-------------+------------+-------+------------+---------------------------------+-------------+----------------+-------------------------+
| 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);
+------+--------------+--------+-------+------------------+-------------+------------+-------+------------+---------------------------------+---------------------------------+----------------+-------------------------+
| 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;
+--------------------+--------------------------------+---------------+-----------------+------------------+
| 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 |
...