DESCRIBE
功能描述
DESCRIBE 和 EXPLAIN 互为同义词,可以用于查看指定表结构,或查看指定 SQL 的执行计划。
查看执行计划部分内容详见 EXPLAIN。
注意事项
- 临时表需要指定临时表对应的schema查询。
- 复合主键索引所有参与列都会在Key字段中显示为PRI。
- 复合唯一索引所有参与列都会在Key字段中显示为UNI。
- 如果一个列参与了多个索引的创建,将按 PRI、UNI、MUL 的优先级顺序显示。
- 生成列会在Default中显示生成式。
- 不支持表同义词。
语法格式
1. {DESCRIBE | DESC | EXPLAIN} tbl_name
参数说明
- {DESCRIBE | DESC | EXPLAIN}
1. 使用 DESCRIBE、DESC 和 EXPLAIN 效果是等价的。
- tbl_name
1. 表名,可指定表名。也可以指定schema_name.table_name。
示例
1. --创建test表
2. openGauss=# CREATE TABLE test2
3. openGauss-# (
4. openGauss(# id int PRIMARY KEY
5. openGauss(# );
6. NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "test2_pkey" for table "test2"
7. CREATE TABLE
8. openGauss=# create table test
9. openGauss-# (
10. openGauss(# a SERIAL,
11. openGauss(# b varchar(10),
12. openGauss(# c varchar(10),
13. openGauss(# d varchar(10),
14. openGauss(# e varchar(10),
15. openGauss(# f varchar(10),
16. openGauss(# g varchar(10) DEFAULT 'g',
17. openGauss(# h varchar(10) NOT NULL,
18. openGauss(# i int DEFAULT 0,
19. openGauss(# j int DEFAULT 0,
20. openGauss(# k int GENERATED ALWAYS AS (i + j) STORED,
21. openGauss(# l int DEFAULT 0,
22. openGauss(# m int CHECK (m < 50),
23. openGauss(# PRIMARY KEY (a, b),
24. openGauss(# FOREIGN KEY(l) REFERENCES test2(id)
25. openGauss(# );
26. NOTICE: CREATE TABLE will create implicit sequence "test_a_seq" for serial column "test.a"
27. NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "test_pkey" for table "test"
28. CREATE TABLE
29. openGauss=# CREATE UNIQUE INDEX idx_c on test (c);
30. CREATE INDEX
31. openGauss=# CREATE UNIQUE INDEX idx_d_e on test (d, e);
32. CREATE INDEX
33. openGauss=# CREATE INDEX idx_f on test (f);
34. CREATE INDEX
36. --查看test表结构
37. openGauss=# desc test;
38. Field | Type | Null | Key | Default | Extra
39. -------+-----------------------+------+-----+---------------------------------+-------
40. a | integer | NO | PRI | nextval('test_a_seq'::regclass) |
41. b | character varying(10) | NO | PRI | NULL |
42. c | character varying(10) | YES | UNI | NULL |
43. d | character varying(10) | YES | UNI | NULL |
44. e | character varying(10) | YES | UNI | NULL |
45. f | character varying(10) | YES | MUL | NULL |
46. g | character varying(10) | YES | | 'g'::character varying |
47. h | character varying(10) | NO | | NULL |
48. i | integer | YES | | 0 |
49. j | integer | YES | | 0 |
50. k | integer | YES | | (i + j) |
51. l | integer | YES | MUL | 0 |
52. m | integer | YES | | NULL |
53. (13 rows)
55. openGauss=# desc public.test;
56. Field | Type | Null | Key | Default | Extra
57. -------+-----------------------+------+-----+---------------------------------+-------
58. a | integer | NO | PRI | nextval('test_a_seq'::regclass) |
59. b | character varying(10) | NO | PRI | NULL |
60. c | character varying(10) | YES | UNI | NULL |
61. d | character varying(10) | YES | UNI | NULL |
62. e | character varying(10) | YES | UNI | NULL |
63. f | character varying(10) | YES | MUL | NULL |
64. g | character varying(10) | YES | | 'g'::character varying |
65. h | character varying(10) | NO | | NULL |
66. i | integer | YES | | 0 |
67. j | integer | YES | | 0 |
68. k | integer | YES | | (i + j) |
69. l | integer | YES | MUL | 0 |
70. m | integer | YES | | NULL |
71. (13 rows)
73. openGauss=# describe public.test;
74. Field | Type | Null | Key | Default | Extra
75. -------+-----------------------+------+-----+---------------------------------+-------
76. a | integer | NO | PRI | nextval('test_a_seq'::regclass) |
77. b | character varying(10) | NO | PRI | NULL |
78. c | character varying(10) | YES | UNI | NULL |
79. d | character varying(10) | YES | UNI | NULL |
80. e | character varying(10) | YES | UNI | NULL |
81. f | character varying(10) | YES | MUL | NULL |
82. g | character varying(10) | YES | | 'g'::character varying |
83. h | character varying(10) | NO | | NULL |
84. i | integer | YES | | 0 |
85. j | integer | YES | | 0 |
86. k | integer | YES | | (i + j) |
87. l | integer | YES | MUL | 0 |
88. m | integer | YES | | NULL |
89. (13 rows)
