全部產品
Search
文件中心

Lindorm:CREATE TABLE LIKE

更新時間:Jul 06, 2024

如果您需要快速建立一個與原表結構一致的新表時,可以使用CREATE TABLE LIKE完成表結構的複製和新表的建立。

引擎與版本

文法

create_table_statement ::=  CREATE TABLE new_table_identifier LIKE old_table_identifier 
                            [ WITH  '(' like_option (',' like_option)* ')']
like_option            ::=  option_identifier '=' string_literal 

使用說明

CREATE TABLE LIKE文法可以複製表結構,但不會複製原表中的資料

新表(new_table_identifier)

建立新表時,關於表名您需要注意以下內容:

  • 可包含數字、大寫英文字元、小寫英文字元、半形句號(.)、中劃線(-)和底線(_)。

  • 表名不能以半形句號(.)或中劃線(-)開頭。

  • 表名的長度為1~255字元。

原表(old_table_identifier)

您可以通過DESCRIBE文法查看原表的表結構,詳細介紹,請參見DESCRIBE/SHOW/USE

複製項(like_option

您可以通過WITH關鍵字指定額外複製項。

支援的複製項參數如下:

參數

類型

描述

COPY_INDEX

STRING

建立表時是否複製二級索引。

取值如下:

  • false:預設值,不複製二級索引。

  • true:複製二級索引。

COPY_SPLITKEYS

STRING

建立表時是否複製原表的分區起始Key。

取值如下:

  • true:複製原表的分區起始Key,原表中的資料分區規則也會被一併複製。

  • false:預設值,不複製。

樣本

假設原表的結構如下:

CREATE TABLE sensor(
  p1 INT NOT NULL,
  p2 INT NOT NULL,
  c1 VARCHAR,
  c2 BIGINT,
  PRIMARY KEY(p1, p2)
) WITH (SPLITKEYS = '100000,300000,500000,700000,900000');

複製表結構

建立一張與表sensor具有相同表結構的表table2

CREATE TABLE table2 LIKE sensor;

複製表結構和分區起始Key

CREATE TABLE table2 LIKE sensor WITH (COPY_SPLITKEYS='true');