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