跳到主要内容
版本: 最新版本-3.5

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

参考