CREATE TABLE#

Синтаксис#

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

Описание#

Создает новую пустую таблицу с указанными столбцами. Для создания таблицы с данными используйте CREATE TABLE AS.

Необязательное предложение OR REPLACE заменяет существующую таблицу с указанным именем новым определением таблицы. Поддержка замены таблиц зависит от коннектора. Подробности см. в документации коннектора.

Необязательное предложение IF NOT EXISTS подавляет ошибку, если таблица уже существует.

OR REPLACE и 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, если она еще не существует, добавив комментарий к таблице, комментарий к столбцу и столбец со значением по умолчанию:

CREATE TABLE IF NOT EXISTS orders (
  orderkey bigint,
  orderstatus varchar,
  totalprice double COMMENT 'Price in cents.',
  orderdate date,
  status varchar DEFAULT 'created'
)
COMMENT 'A table to keep track of orders.'

Создать таблицу bigger_orders, используя столбцы из orders и дополнительные столбцы в начале и в конце:

CREATE TABLE bigger_orders (
  another_orderkey bigint,
  LIKE orders,
  another_orderdate date
)

См. также#

ALTER TABLE, DROP TABLE, CREATE TABLE AS, SHOW CREATE TABLE