CREATE TABLE#

Синтаксис#

CREATE [ OR REPLACE ] 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 ]
  }
  [, ...]
)
[ COMMENT table_comment ]
[ WITH ( property_name = expression [, ...] ) ]

Описание#

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

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

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

OR REPLACE и IF NOT EXISTS не могут быть использованы одновременно.

Выражение WITH#

Необязательное выражение WITH можно использовать для установки свойств создаваемой таблицы или ее отдельного столбца. Список доступных свойств зависит от каталога.

Чтобы получить список доступных свойств таблицы для всех каталогов, выполните следующий запрос:

SELECT * FROM system.metadata.table_properties;

Чтобы получить список доступных свойств столбцов для всех каталогов, выполните следующий запрос:

SELECT * FROM system.metadata.column_properties;

Данные запросы могут вернуть пустой результат, если ни один из сконфигурированных каталогов не имеет доступных свойств.

Выражение LIKE#

Для создания таблицы необходимо указать список колонок. Вы так же можете использовать выражение LIKE, чтобы использовать определения колонок из другой таблицы для создания текущей. Можно указать несколько выражений LIKE, что позволяет использовать определения колонок из нескольких таблиц.

Если в выражении LIKE использован модификатор INCLUDING PROPERTIES, свойства существующей таблицы будут скопированы в новую. Если в выражении WITH указано то же свойство, что и в существующей таблице, будет использовано значение из выражения WITH.

Если в выражении LIKE использован модификатор EXCLUDING PROPERTIES, свойства существующей таблицы не будут скопированы в новую. Выражение EXCLUDING PROPERTIES может быть использовано не более чем для одной таблицы.

По умолчанию будет использован модификатор EXCLUDING PROPERTIES.

Выражение COMMENT#

Необязательное выражение COMMENT может быть использовано для задания комментария таблицы или столбца. Поддержка COMMENT зависит от конкретного каталога.

Примеры#

Создает новую таблицу 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
);

См. также#

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