Перейти к содержанию

CREATE TABLE

DDL-команда CREATE TABLE используется для создания новой шардированной или глобальной таблицы.

Синтаксис

CREATE TABLE IF NOT EXISTS table ( column type NOT NULL PRIMARY KEY , , PRIMARY KEY ( column , ) ) USING MEMTX VINYL DISTRIBUTED BY ( column , ) IN TIER tier GLOBALLY WAIT APPLIED GLOBALLY LOCALLY OPTION ( TIMEOUT = double )

Тип

Диаграмма

BOOL BOOLEAN DATETIME DECIMAL DOUBLE INT INTEGER NUMBER SCALAR STRING TEXT UNSIGNED UUID VARCHAR ( length )

Параметры

  • TABLE — имя таблицы. Соответствует правилам имен для всех объектов в кластере

  • IF NOT EXISTS — позволяет избежать ошибки в случае, если такая таблица в кластере уже есть

  • PRIMARY KEY — первичный ключ. Обеспечивает уникальность и сортировку данных только в рамках одного экземпляра кластера. Глобальную уникальность записи он не дает

  • DISTRIBUTED GLOBALLY — глобальное распределение таблицы. В результате данные в таблице идентичны на всех экземплярах кластера и синхронизируются через Raft-журнал. Поддерживается только для движка хранения данных memtx

  • DISTRIBUTED BY — шардирование таблицы по набору колонок. В результате каждый экземпляр содержит только часть данных в таблице

  • IN TIER — имя тира, в котором будет создана шардированная таблица. Если параметр не задан, будет использовано имя тира по умолчанию default.

  • MEMTXдвижок хранения данных в памяти

  • VINYL — дисковый движок хранения данных, использующий LSM-деревья (Log Structured Merge Tree)

  • WAIT APPLIED — при использовании этого параметра контроль пользователю будет возвращен только после того как данная операция будет применена либо во всем кластере (GLOBALLY), либо в рамках текущего инстанса (LOCALLY)

Примеры

Минимально возможная команда
CREATE TABLE warehouse (
    id INTEGER PRIMARY KEY);

Примечание

Если параметр DISTRIBUTED не указан, то по умолчанию таблица будет шардирована по колонкам первичного ключа.

Создание таблицы с использованием движка хранения memtx
CREATE TABLE warehouse (
    id INTEGER NOT NULL,
    item TEXT NOT NULL,
    type TEXT NOT NULL,
    PRIMARY KEY (id))
USING memtx DISTRIBUTED BY (id)
OPTION (TIMEOUT = 3.0);
Создание таблицы с ограничением PRIMARY KEY в определении колонки
CREATE TABLE warehouse (
    id INTEGER PRIMARY KEY,
    item TEXT NOT NULL,
    type TEXT NOT NULL)
USING memtx DISTRIBUTED BY (id)
OPTION (TIMEOUT = 3.0);
Создание таблицы с шардированием в тире default
CREATE TABLE warehouse (
    id INTEGER PRIMARY KEY,
    item TEXT NOT NULL,
    type TEXT NOT NULL)
USING memtx DISTRIBUTED BY (id)
IN TIER "default"
OPTION (TIMEOUT = 3.0);