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
)