box.schema.space.create()
-
box.schema.space.
create
(space-name[, {options}])¶ -
box.schema.
create_space
(space-name[, {options}])¶ Создание спейса.
Параметры: - space-name (
string
) – имя спейса, которое должно соответствовать правилам именования объектов - options (
table
) – см. таблицу «Параметры для box.schema.space.create» ниже
возвращает: объект спейса
тип возвращаемого значения: пользовательские данные
Можно использовать любой вариант синтаксиса. Например,
s = box.schema.space.create('tester')
эквивалентноs = box.schema.create_space('tester')
.Параметры для box.schema.space.create
Имя Эффект Тип Значение по умолчанию engine (движок) „memtx“ или „vinyl“ string (строка) „memtx“ field_count (количество полей) заданное количество полей: например, если field_count=5, нельзя вставить кортеж с количеством полей, большим или меньшим, чем 5 число 0, то есть не задано format (формат) имена и типы полей: см. наглядные примеры операторов в описании space_object:format() и в box.space._space. Необязательный параметр, обычно значение не указывается. таблица (пустое) id уникальный идентификатор: пользователи могут ссылаться на спейсы посредством идентификатора вместо имени число идентификатор последнего спейса +1 if_not_exists (если отсутствует) спейс создается, только если спейса с таким же именем нет в базе данных, в противном случае эффект отсутствует, но ошибка не выдается boolean (логический) false (ложь) is_local содержимое спейса реплицируется локально: изменения сохраняются в журнале упреждающей записи локального узла, но не происходит репликация. boolean (логический) false (ложь) is_sync any transaction doing a DML request on this space becomes synchronous boolean (логический) false (ложь) temporary (временный) space contents are temporary: changes are not stored in the write-ahead log and there is no replication. Note regarding storage engine: vinyl does not support temporary spaces. boolean (логический) false (ложь) user (пользователь) имя пользователя, который считается владельцем спейса, для целей авторизации string (строка) имя текущего пользователя Если выполнить
box.cfg{read_only=true...}
во время конфигурации по-разному влияет на спейсы в зависимости от опций, использованных во времяbox.schema.space.create
, как описано в таблице:Характеристика Можно создать? Допускает запись? Реплицируется? Сохраняется? (по умолчанию) нет нет да да temporary (временный) нет да нет нет is_local нет да нет да Существуют три варианта синтаксиса для ссылок на объекты спейса, например,
box.schema.space.drop(id-спейса)
удалит спейс. Однако общий подход заключается в использовании функций, прикрепленных к объектам спейса, например space_object:drop().Пример:
tarantool> s = box.schema.space.create('space55') --- ... tarantool> s = box.schema.space.create('space55', { > id = 555, > temporary = false > }) --- - error: Space 'space55' already exists ... tarantool> s = box.schema.space.create('space55', { > if_not_exists = true > }) --- ...
Следующим шагом после создания спейса будет создание индекса для него, после чего можно будет выполнять вставку, выборку и другие функции box.space.
- space-name (