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
子句指定的屬性名稱與複製的屬性名稱相同,則會使用 WITH
子句中的值。預設行為是 EXCLUDING PROPERTIES
。INCLUDING PROPERTIES
選項最多只能為一個表格指定。
範例¶
建立新的表格 orders
CREATE TABLE orders (
orderkey bigint,
orderstatus varchar,
totalprice double,
orderdate date
)
WITH (format = 'ORC')
如果表格 orders
尚不存在,則建立該表格,並新增表格註解、欄位註解、欄位 orderstatus
的 not 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.'
使用 orders
中的欄位,加上開頭和結尾的額外欄位,建立表格 bigger_orders
CREATE TABLE bigger_orders (
another_orderkey bigint,
LIKE orders,
another_orderdate date
)