CREATE TABLE LIKE

最近更新时间:2026-05-20 14:11:21

我的收藏

描述

CREATE TABLE LIKE 语句复制已有表的结构(Schema),创建一个具有相同列定义但不含数据的新表,新表可以覆盖部分属性(如 TBLPROPERTIESCOMMENT 等)。

语法

CREATE [ IF NOT EXISTS ] table_identifier
LIKE source_table_identifier
[ USING tci ]
[ COMMENT table_comment ]
[ TBLPROPERTIES ( 'key' = 'value', ... ) ]
注意:
新表仅复制 Schema(列定义),不会复制原表的数据。
新表不继承源表的分区规范(Partition Spec)和表属性(Table Properties)。
可以在 LIKE 后追加新的 TBLPROPERTIES 来自定义属性。
TCI 表不支持 EXTERNALLOCATION 子句。

示例

创建源表

CREATE TABLE tci_like_source (
id INT,
name STRING,
age INT
) USING tci;

CREATE TABLE LIKE 基本用法

CREATE TABLE tci_like_t1
LIKE tci_like_source;

TBLPROPERTIES 设置

CREATE TABLE tci_like_t2
LIKE tci_like_source
TBLPROPERTIES ('primary-key' = 'id');

IF NOT EXISTS 幂等性检查

CREATE TABLE IF NOT EXISTS tci_like_t3
LIKE tci_like_source;

验证新表结构

DESCRIBE tci_like_t1;
DESCRIBE tci_like_t2;
SHOW CREATE TABLE tci_like_t2;