概要

CREATE TABLE [ IF NOT EXISTS ]
table_name (
  { column_name data_type [ COMMENT comment ]
  | LIKE existing_table_name [ { INCLUDING | EXCLUDING } PROPERTIES ] }
  [, ...]
)
[ COMMENT table_comment ]
[ WITH ( property_name = expression [, ...] ) ]

描述

创建空表。可以使用CREATE TABLE AS从已有数据集中创建表。

  • 使用IF NOT EXISTS子句可以避免在表存在时抛出异常;

  • 使用WITH子句可以在创建表格时,为表格设置属性。支持的属性列表可以通过下列语句获取:

    SELECT * FROM system.metadata.table_properties;
    
  • 使用LIKE子句可以引用已经存在的表的列定义。支持使用多个LIKE子句;

  • 使用INCLUDING PROPERTIES可以在创建表时,引用已有表的属性。如果同时还使用了WITH子句,WITH子句中指定的属性会覆盖INCLUDING PROPERTIES引入的同名属性。默认为EXCLUDING PROPERTIES

示例

--- 创建表orders
CREATE TABLE orders (
  orderkey bigint,
  orderstatus varchar,
  totalprice double,
  orderdate date
)
WITH (format = 'ORC')

--- 创建表orders,带备注信息
CREATE TABLE IF NOT EXISTS orders (
  orderkey bigint,
  orderstatus varchar,
  totalprice double COMMENT 'Price in cents.',
  orderdate date
)
COMMENT 'A table to keep track of orders.'

--- 创建表bigger_orders, 其中部分列的定义引用自表orders
CREATE TABLE bigger_orders (
  another_orderkey bigint,
  LIKE orders,
  another_orderdate date
)