CREATE TABLE¶
概要¶
CREATE TABLE [ IF NOT EXISTS ]
table_name (
{ column_name data_type [NOT NULL] [ COMMENT comment ] [ WITH ( property_name = expression [, ...] ) ]
| LIKE existing_table_name [ { INCLUDING | EXCLUDING } PROPERTIES ]
| [ CONSTRAINT constraint_name ] { PRIMARY KEY | UNIQUE } ( { column_name [, ...] } ) [ { ENABLED | DISABLED } ] [ [ NOT ] RELY ] [ [ NOT ] ENFORCED ] }
[, ...]
)
[ COMMENT table_comment ]
[ WITH ( property_name = expression [, ...] ) ]
説明¶
指定された列を持つ新しい空のテーブルを作成します。データを含むテーブルを作成するには、CREATE TABLE ASを使用します。
オプションのIF NOT EXISTS
句を指定すると、テーブルが既に存在する場合のエラーが抑制されます。
オプションのWITH
句を使用すると、新しく作成されたテーブルまたは単一の列にプロパティを設定できます。利用可能なテーブルプロパティをすべてリストするには、次のクエリを実行します。
SELECT * FROM system.metadata.table_properties
利用可能なすべての列プロパティをリストするには、次のクエリを実行します。
SELECT * FROM system.metadata.column_properties
LIKE
句を使用すると、既存のテーブルからすべての列定義を新しいテーブルに含めることができます。複数のLIKE
句を指定でき、複数のテーブルから列をコピーできます。
INCLUDING PROPERTIES
を指定すると、テーブルのすべてのプロパティが新しいテーブルにコピーされます。WITH
句がコピーされたプロパティの1つと同じプロパティ名を指定した場合、WITH
句の値が使用されます。デフォルトの動作はEXCLUDING PROPERTIES
です。INCLUDING PROPERTIES
オプションは、最大で1つのテーブルに対して指定できます。
例¶
新しいテーブルorders
を作成する
CREATE TABLE orders (
orderkey bigint,
orderstatus varchar,
totalprice double,
orderdate date
)
WITH (format = 'ORC')
テーブルorders
が存在しない場合は作成し、テーブルコメント、列コメント、列orderstatus
の非NULL制約、列orderkey
の主キー制約を追加します
CREATE TABLE IF NOT EXISTS orders (
orderkey bigint,
orderstatus varchar NOT NULL,
totalprice double COMMENT 'Price in cents.',
orderdate date,
PRIMARY KEY (orderkey)
)
COMMENT 'A table to keep track of orders.'
テーブルbigger_orders
をorders
の列を使用して作成し、先頭と末尾に追加の列を追加します
CREATE TABLE bigger_orders (
another_orderkey bigint,
LIKE orders,
another_orderdate date
)