CREATE TABLE LIKE 構文を使用して、既存のテーブルのスキーマを複製し、そのスキーマに基づいてテーブルを作成できます。
適用可能なエンジンとバージョン
CREATE TABLE LIKE 構文は LindormTable にのみ適用できます。
CREATE TABLE LIKE 構文は、LindormTable 2.4.2.1 以降のバージョンでサポートされています。 LindormTable のバージョンを表示およびアップグレードする方法の詳細については、「LindormTable のリリースノート」および「Lindorm インスタンスのマイナーエンジンバージョンのアップグレード」をご参照ください。
構文
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 | 新しいテーブルで元のテーブルのパーティション開始キーを複製するかどうかを指定します。 有効な値:
|
例
次の例では、次のステートメントを実行して元のテーブルを作成します。Testable
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;
元のテーブルのスキーマとパーティション開始キーを複製します。
CREATE TABLE table2 LIKE sensor WITH (COPY_SPLITKEYS='true');