如果您需要快速建立一個與原表結構一致的新表時,可以使用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 | 建立表時是否複製二級索引。 取值如下:
|
COPY_SPLITKEYS | STRING | 建立表時是否複製原表的分區起始Key。 取值如下:
|
樣本
假設原表的結構如下:
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');