SHOW CREATE TABLE
返回用于创建给定表的 CREATE TABLE 语句。
注意
在 v3.0 之前的版本中,SHOW CREATE TABLE 语句要求您具有表的
SELECT_PRIV
权限。从 v3.0 开始,SHOW CREATE TABLE 语句要求您具有表的SELECT
权限。
自 v3.0 起,您可以使用 SHOW CREATE TABLE 语句来查看由外部 Catalog 管理并存储在 Apache Hive™、Apache Iceberg、Apache Hudi 或 Delta Lake 中的表的 CREATE TABLE 语句。
自 v2.5.7 起,StarRocks 可以在您创建表或添加分区时自动设置存储桶数 (BUCKETS)。您不再需要手动设置存储桶数。有关详细信息,请参阅设置存储桶数。
- 如果您在创建表时指定了存储桶数,则 SHOW CREATE TABLE 的输出将显示存储桶数。
- 如果您在创建表时没有指定存储桶数,则 SHOW CREATE TABLE 的输出将不显示存储桶数。您可以运行SHOW PARTITIONS 来查看每个分区的存储桶数。
在 v2.5.7 之前的版本中,您需要在创建表时设置存储桶数。因此,SHOW CREATE TABLE 默认显示存储桶数。
语法
SHOW CREATE TABLE [db_name.]table_name
参数
参数 | 必需 | 描述 |
---|---|---|
db_name | 否 | 数据库名称。如果未指定此参数,则默认返回当前数据库中给定表的 CREATE TABLE 语句。 |
table_name | 是 | 表名。 |
输出
+-----------+----------------+
| Table | Create Table |
+-----------+----------------+
下表描述了此语句返回的参数。
参数 | 描述 |
---|---|
Table | 表名。 |
Create Table | 表的 CREATE TABLE 语句。 |
示例
未指定存储桶数
创建一个名为 example_table
的表,DISTRIBUTED BY 中未指定存储桶数。
CREATE TABLE example_table
(
k1 TINYINT,
k2 DECIMAL(10, 2) DEFAULT "10.5",
v1 CHAR(10) REPLACE,
v2 INT SUM
)
ENGINE = olap
AGGREGATE KEY(k1, k2)
COMMENT "my first starrocks table"
DISTRIBUTED BY HASH(k1);
运行 SHOW CREATE TABLE 以显示 example_table
的 CREATE TABLE 语句。DISTRIBUTED BY 中未显示存储桶数。请注意,如果您在创建表时未指定 PROPERTIES,则默认属性将显示在 SHOW CREATE TABLE 的输出中。
SHOW CREATE TABLE example_table\G
*************************** 1. row ***************************
Table: example_table
Create Table: CREATE TABLE `example_table` (
`k1` tinyint(4) NULL COMMENT "",
`k2` decimal64(10, 2) NULL DEFAULT "10.5" COMMENT "",
`v1` char(10) REPLACE NULL COMMENT "",
`v2` int(11) SUM NULL COMMENT ""
) ENGINE=OLAP
AGGREGATE KEY(`k1`, `k2`)
COMMENT "my first starrocks table"
DISTRIBUTED BY HASH(`k1`)
PROPERTIES (
"replication_num" = "3",
"in_memory" = "false",
"enable_persistent_index" = "true",
"replicated_storage" = "true",
"compression" = "LZ4"
);
已指定存储桶数
创建一个名为 example_table1
的表,DISTRIBUTED BY 中存储桶数设置为 10。
CREATE TABLE example_table1
(
k1 TINYINT,
k2 DECIMAL(10, 2) DEFAULT "10.5",
v1 CHAR(10) REPLACE,
v2 INT SUM
)
ENGINE = olap
AGGREGATE KEY(k1, k2)
COMMENT "my first starrocks table"
DISTRIBUTED BY HASH(k1) BUCKETS 10;
运行 SHOW CREATE TABLE 以显示 example_table
的 CREATE TABLE 语句。存储桶数 (BUCKETS 10
) 显示在 DISTRIBUTED BY 中。请注意,如果您在创建表时未指定 PROPERTIES,则默认属性将显示在 SHOW CREATE TABLE 的输出中。
SHOW CREATE TABLE example_table1\G
*************************** 1. row ***************************
Table: example_table1
Create Table: CREATE TABLE `example_table1` (
`k1` tinyint(4) NULL COMMENT "",
`k2` decimal64(10, 2) NULL DEFAULT "10.5" COMMENT "",
`v1` char(10) REPLACE NULL COMMENT "",
`v2` int(11) SUM NULL COMMENT ""
) ENGINE=OLAP
AGGREGATE KEY(`k1`, `k2`)
COMMENT "my first starrocks table"
DISTRIBUTED BY HASH(`k1`) BUCKETS 10
PROPERTIES (
"replication_num" = "3",
"in_memory" = "false",
"enable_persistent_index" = "true",
"replicated_storage" = "true",
"compression" = "LZ4"
);