DESCRIBE TABLE¶
描述表中的列或表的暂存区属性集(当前值以及默认值)。
DESCRIBE 可以缩写为 DESC。
语法¶
{ DESCRIBE | DESC } TABLE <name> [ TYPE = { COLUMNS | STAGE } ]
参数¶
name
指定要描述的表的标识符。如果标识符包含空格或特殊字符,则整个字符串必须放在双引号内。放在双引号内的标识符也区分大小写。
TYPE = COLUMNS | STAGE
指定是显示表的列,还是显示表的暂存属性集(当前值和默认值)。
默认:
TYPE = COLUMNS
使用说明¶
此命令不显示表的对象参数。请改用 SHOW PARAMETERS IN TABLE。
DESCRIBE TABLE 和 DESCRIBE VIEW 可互换。两条命令均返回指定表或视图的详细信息;但
TYPE = STAGE
不适用于视图,因为视图没有暂存属性。如果在表上启用了架构演化,则输出将包含一个
SchemaEvolutionRecord
列。此列通过 2023_08 捆绑包(正式启用) 引入。有关更多信息,请参阅 表模式演化。输出包括一个
policy name
列,用于指示在列上设置的 掩码策略。如果未在该列上设置掩码策略,或者 Snowflake 账户不是 Enterprise Edition 或更高版本,Snowflake 将返回
NULL
。输出包括一个
privacy domain
列,用于指示在列上设置的 隐私域。如果未在该列上设置隐私域,或者 Snowflake 账户不是 Enterprise Edition 或更高版本,Snowflake 将返回
NULL
。
若要对此命令的输出进行后处理,可以使用 RESULT_SCAN 函数,该函数会将输出视为可查询的表。
输出¶
在 TYPE = COLUMNS
时,命令输出提供以下属性和元数据:
列 |
描述 |
---|---|
|
表中列的名称。 |
|
表中列的数据类型。 |
|
对于 Snowflake 表,此值始终为 |
|
列是否接受 NULL 值( |
|
列的默认值(如有)(否则为 |
|
列是否为主键(或多列主键的一部分; |
|
列是否有 UNIQUE 约束( |
|
保留以供将来使用。 |
|
保留以供将来使用。 |
|
列的注释集(如有)(否则为 |
|
为列设置的 掩码策略 </sql-reference/sql/create-masking-policy>`(如有)(否则为 ``NULL`)。 |
|
为列设置的 隐私域 </user-guide/diff-privacy/differential-privacy-privacy-domains>`(如有)(否则为 ``NULL`)。 |
|
记录特定表列最新触发的架构演进信息。此列包含以下子字段:
|
在 TYPE = STAGE
时,命令输出将提供表暂存属性的当前值和默认值。请参阅 示例:描述暂存属性。
示例¶
如下示例展示了如何描述表。
示例:描述具有约束和其他列属性的表¶
创建一个包含五列的表,其中两列有约束。为一个列提供一个 DEFAULT 值和一个注释。
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));
描述表中的列:
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 |
+------+--------------+--------+-------+------------------+-------------+------------+-------+------------+---------------------------------+-------------+----------------+-------------------------+
示例:描述一个表,其中的某个列上有掩码策略¶
创建一个 普通掩码策略,随后使用在一列上设置的掩码策略重新创建 desc_example
表。(若要运行此示例,请先创建 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 |
+------+--------------+--------+-------+------------------+-------------+------------+-------+------------+---------------------------------+---------------------------------+----------------+-------------------------+
示例:描述暂存属性¶
描述同一个表的当前暂存属性(此处仅显示前五行):
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 |
...