DESCRIBE
功能描述
DESCRIBE和EXPLAIN互为同义词,可以用于查看指定表结构,或查看指定SQL的执行计划。
查看执行计划部分内容详见EXPLAIN。
注意事项
- 该功能仅在数据库兼容模式为MySQL时支持(即数据库实例初始化时指定DBCOMPATIBILITY='B')。
- 临时表需要指定临时表对应的schema查询。
- 复合主键索引所有参与列都会在Key字段中显示为PRI。
- 复合唯一索引所有参与列都会在Key字段中显示为UNI。
- 如果一个列参与了多个索引的创建,将按 PRI、UNI、MUL 的优先级顺序显示。
- 生成列会在Default中显示生成式。
- 不支持表同义词。
语法格式
{DESCRIBE | DESC | EXPLAIN} tbl_name
参数说明
{DESCRIBE | DESC | EXPLAIN}
使用DESCRIBE、DESC和EXPLAIN效果是等价的,用于查看指定表结构,或查看指定 SQL 的执行计划。
tbl_name
表名,可指定表名。也可以指定
schema_name.table_name
。
示例
1、创建测试表。
CREATE TABLE test2(id int PRIMARY KEY);
create table test(a SERIAL,b varchar(10),c varchar(10),d varchar(10),e varchar(10),f varchar(10),g varchar(10) DEFAULT 'g',h varchar(10) NOT NULL,i int DEFAULT 0, j int DEFAULT 0,k int GENERATED ALWAYS AS (i + j) STORED,l int DEFAULT 0,m int CHECK (m < 50),PRIMARY KEY (a, b),FOREIGN KEY(l) REFERENCES test2(id));
2、创建索引。
CREATE UNIQUE INDEX idx_c on test (c);
CREATE UNIQUE INDEX idx_d_e on test (d, e);
CREATE INDEX idx_f on test (f);
3、查看test表结构。
describe public.test;
返回结果为:
Field | Type | Null | Key | Default | Extra
-------+-------------+------+-----+---------------------------------+-------
a | integer | NO | PRI | nextval('test_a_seq'::regclass) |
b | varchar(10) | NO | PRI | NULL |
c | varchar(10) | YES | UNI | NULL |
d | varchar(10) | YES | UNI | NULL |
e | varchar(10) | YES | UNI | NULL |
f | varchar(10) | YES | MUL | NULL |
g | varchar(10) | YES | | 'g'::varchar |
h | varchar(10) | NO | | NULL |
i | integer | YES | | 0 |
j | integer | YES | | 0 |
k | integer | YES | | (i + j) |
l | integer | YES | MUL | 0 |
m | integer | YES | | NULL |
(13 rows)