CREATE TABLE LIKE

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

我的收藏

描述

CREATE TABLE 语句使用现有表或视图的定义/元数据来定义一个新表。

语法

CREATE TABLE [IF NOT EXISTS] table_identifier LIKE source_table_identifier
USING data_source
[ ROW FORMAT row_format ]
[ STORED AS file_format ]
[ TBLPROPERTIES ( key1=val1, key2=val2, ... ) ]
[ LOCATION path ]

参数说明

子句/关键字
用途
说明
table_identifier
表名标识
[ database_name. ] table_name,可选数据库名限定
USING data_source
数据源格式
输入格式:CSVTXTORCJDBCPARQUET
ROW FORMAT
行序列化方式
指定自定义 SerDeDELIMITED 使用原生 SerDe
STORED AS
文件存储格式
TEXTFILEORCPARQUET
TBLPROPERTIES
表属性键值对
created.by.userowner 等元数据属性
LOCATION
存储路径
表数据的目录路径;指定 LOCATION 则创建外部表(EXTERNAL

示例

-- 创建源表
CREATE EXTERNAL TABLE source_table_like (id INT, name STRING, age INT)
USING PARQUET LOCATION 'cosn://<your_cos_bucket>/test_create_table_like/source_table_like';

-- CREATE TABLE LIKE + LOCATION(默认数据源)
CREATE TABLE like_t1 LIKE source_table_like
LOCATION 'cosn://<your_cos_bucket>/test_create_table_like/like_t1';

-- CREATE TABLE LIKE + USING CSV + LOCATION
CREATE TABLE like_t2 LIKE source_table_like
USING CSV
LOCATION 'cosn://<your_cos_bucket>/test_create_table_like/like_t2';

-- IF NOT EXISTS
CREATE TABLE IF NOT EXISTS like_t1 LIKE source_table_like
LOCATION 'cosn://<your_cos_bucket>/test_create_table_like/like_t1';

-- CREATE TABLE LIKE + ROW FORMAT + STORED AS + LOCATION
CREATE TABLE like_t3 LIKE source_table_like
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
STORED AS TEXTFILE
LOCATION 'cosn://<your_cos_bucket>/test_create_table_like/like_t3';

-- DESC 验证
DESC TABLE EXTENDED like_t1;
DESC TABLE EXTENDED like_t2;