DESCRIBE TABLE

描述表中的列或表的暂存区属性集(当前值以及默认值)。

DESCRIBE 可以缩写为 DESC。

另请参阅:

DROP TABLEALTER TABLECREATE TABLESHOW TABLES

DESCRIBE VIEW

语法

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

参数

name

指定要描述的表的标识符。如果标识符包含空格或特殊字符,则整个字符串必须放在双引号内。放在双引号内的标识符也区分大小写。

TYPE = COLUMNS | STAGE

指定是显示表的列,还是显示表的暂存属性集(当前值和默认值)。

默认:TYPE = COLUMNS

使用说明

  • 此命令不显示表的对象参数。请改用 SHOW PARAMETERS IN TABLE

  • DESCRIBE TABLE 和 DESCRIBE VIEW 可互换。两条命令均返回指定表或视图的详细信息;但 TYPE = STAGE 不适用于视图,因为视图没有暂存属性。

  • 如果在表上启用了架构演化,则输出将包含一个 SchemaEvolutionRecord 列。此列通过 2023_08 捆绑包(正式启用) 引入。有关更多信息,请参阅 表模式演化

  • The output includes a policy name column to indicate the masking policy set directly on the column. If the column is protected by a tag-based masking policy, Snowflake returns NULL.

    If a masking policy is not set directly on the column or if the Snowflake account is not Enterprise Edition or higher, Snowflake returns NULL.

  • 输出包括一个 privacy domain 列,用于指示在列上设置的 隐私域

    如果未在该列上设置隐私域,或者 Snowflake 账户不是 Enterprise Edition 或更高版本,Snowflake 将返回 NULL

  • To post-process the output of this command, you can use the pipe operator (->>) or the RESULT_SCAN function. Both constructs treat the output as a result set that you can query.

    The output column names for this command are generated in lowercase. If you consume a result set from this command with the pipe operator or the RESULT_SCAN function, use double-quoted identifiers for the column names in the query to ensure that they match the column names in the output that was scanned. For example, if the name of an output column is type, then specify "type" for the identifier.

输出

TYPE = COLUMNS 时,命令输出提供以下属性和元数据:

描述

name

表中列的名称。

type

表中列的数据类型。如果已为列指定了 排序规则,则排序规则规范会包含在其中。

kind

对于 Snowflake 表,此值始终为 COLUMN

null?

列是否接受 NULL 值(YN)。

default

列的默认值(如有)(否则为 NULL)。

primary key

列是否为主键(或多列主键的一部分;YN)。

unique key

列是否有 UNIQUE 约束(YN)。

check

保留以供将来使用。

expression

保留以供将来使用。

comment

列的注释集(如有)(否则为 NULL)。

policy name

为列设置的 掩码策略 </sql-reference/sql/create-masking-policy>`(如有)(否则为 ``NULL`)。

privacy domain

为列设置的 隐私域 </user-guide/diff-privacy/differential-privacy-privacy-domains>`(如有)(否则为 ``NULL`)。

schema evolution record

记录特定表列最新触发的架构演进信息。此列包含以下子字段:

  • EvolutionType:触发的架构演进的类型(ADD_COLUMN 或 DROP_NOT_NULL)。

  • EvolutionMode:触发引入机制(COPY 或 SNOWPIPE)。

  • FileName:触发演进的文件名。

  • TriggeringTime:列演化的大致时间。

  • QueryId 或 PipeID:触发查询或管道的唯一标识符(用于 COPY 的 QUERY ID 或用于 SNOWPIPE 的 PIPE ID)。

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));
Copy

描述表中的列:

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                    |
+------+--------------+--------+-------+------------------+-------------+------------+-------+------------+---------------------------------+-------------+----------------+-------------------------+

示例:描述一个表,其中的某个列上有掩码策略

创建一个 普通掩码策略,随后使用在一列上设置的掩码策略重新创建 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);
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                    |
+------+--------------+--------+-------+------------------+-------------+------------+-------+------------+---------------------------------+---------------------------------+----------------+-------------------------+

示例:描述暂存属性

描述同一个表的当前暂存属性(此处仅显示前五行):

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                |
...
语言: 中文