如果您想要新建结构相似的表或数据库,可以通过DESCRIBE语法获取原表或原数据库的结构。
适用引擎
DESCRIBE语法适用于宽表引擎和时序引擎。
语法
describe_statement ::= { DESCRIBE | DESC } [{ DATABASE | TABLE }] identifier
差异说明
宽表引擎和时序引擎对语法要素的支持情况如下:
语法要素 | 宽表引擎 | 时序引擎 |
✖️ | 〇 | |
〇 | 〇 | |
〇 | 〇 |
使用说明
DATABASE
仅时序引擎支持DATABASE
关键字。
在DESCRIBE
中使用DATABASE
关键字用于获取并返回数据库的结构。
TABLE
在DESCRIBE
中使用TABLE
关键字用于获取并返回表的结构。需注意,宽表引擎和时序引擎返回的表结构信息并不完全相同。
对象名称(identifier)
DESCRIBE
语句中使用DATABASE
关键字时默认identifier为数据库名,DESCRIBE
语句中使用TABLE
关键字时默认identifier为表名。如果DESCRIBE
中未使用DATABASE
和TABLE
关键字,默认identifier为表名。例如DESCRIBE test;
表示获取当前数据库下test表的结构。
示例
假设建表语句如下:
CREATE TABLE sensor (
device_id VARCHAR NOT NULL,
region VARCHAR NOT NULL,
time TIMESTAMP NOT NULL,
temperature DOUBLE,
humidity BIGINT,
PRIMARY KEY(device_id, region, time)
);
获取表结构
DESCRIBE TABLE sensor; -- 完整写法
DESC sensor; -- 缩略写法
宽表引擎返回结果如下:
+--------------+------------+-------------+-----------+----------------+------------+
| TABLE_SCHEMA | TABLE_NAME | COLUMN_NAME | TYPE | IS_PRIMARY_KEY | SORT_ORDER |
+--------------+------------+-------------+-----------+----------------+------------+
| default | sensor | device_id | VARCHAR | true | ASC |
| default | sensor | region | VARCHAR | true | ASC |
| default | sensor | time | TIMESTAMP | true | ASC |
| default | sensor | temperature | DOUBLE | false | none |
| default | sensor | humidity | BIGINT | false | none |
+--------------+------------+-------------+-----------+----------------+------------+
时序引擎返回结果如下:
+-------------+-----------+------------+------------+--------------+
| columnName | typeName | columnKind | primaryKey | partitionTag |
+-------------+-----------+------------+------------+--------------+
| device_id | VARCHAR | TAG | true | true |
| region | VARCHAR | TAG | true | true |
| time | TIMESTAMP | TIMESTAMP | true | false |
| temperature | DOUBLE | FIELD | false | false |
| humidity | BIGINT | FIELD | false | false |
+-------------+-----------+------------+------------+--------------+
获取数据库结构
获取时序数据库DB1的结构。
DESCRIBE DATABASE DB1;
返回结果如下:
+--------------------+-------+
| attribute | value |
+--------------------+-------+
| shard_num_per_node | 0 |
| skip_wal | false |
| string_compression | false |
| cold_boundary | 30 |
| partition_interval | 30 |
| ttl | 60 |
| shard_num | 0 |
+--------------------+-------+
返回结果说明:
shard_num_per_node:Database在每个节点使用的分片数量。默认值为1。
skip_wal:是否记录日志数据。默认值为false,即默认数据库记录日志数据。
string_compression:是否对STRING类型的数据进行压缩。默认值为false,即不压缩STRING数据。
shard_num:Database在集群中的分片总数。无默认值。
cold_boundary、partition_interval、ttl:
CREATE DATABASE
时设置的数据库属性,详细介绍,请参见数据库属性(attribute_definition)。
文档内容是否对您有帮助?