すべてのプロダクト
Search
ドキュメントセンター

Lindorm:CREATE TABLE LIKE

最終更新日:Jan 14, 2025

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

新しいテーブルで元のテーブルのパーティション開始キーを複製するかどうかを指定します。

有効な値:

  • true:元のテーブルのパーティション開始キーを複製します。 この場合、元のテーブルのパーティションルールも新しいテーブルに複製されます。

  • false(デフォルト):元のテーブルのパーティション開始キーを複製しません。

次の例では、次のステートメントを実行して元のテーブルを作成します。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');