Tarantool CE/EE Documentation portal logo
Помощь
Обновлена 15 сентября 2026 г. в 08:55

update

update(key, {{operator, field_identifier, value}, ...})

Обновление кортежа.

Возможные операторы:

  • + для сложения. значения должны быть числовыми, например unsigned или decimal
  • - для вычитания. значения должны быть числовыми
  • & для побитового И. значения должны быть беззнаковыми числовыми
  • | для побитового ИЛИ. значения должны быть беззнаковыми числовыми
  • ^ для побитового XOR(исключающего ИЛИ). значения должны быть беззнаковыми числовыми
  • : для вырезания и вставки фрагмента строки.
  • ! для вставки нового поля.
  • # для удаления.
  • = для присваивания.

Возможные значения field_identifier:

  • Положительный номер поля. Первое поле — 1, второе поле — 2, и так далее.
  • Отрицательный номер поля. Последнее поле — -1, предпоследнее поле — -2, и так далее. Другими словами: (#tuple + отрицательный номер поля + 1).
  • Имя. Если спейс был отформатирован с помощью space_object:format(), то это может быть строка с именем поля ('name').

Параметры:

  • space_object (space_object) — ссылка на объект
  • key (scalar/table) — значения полей первичного ключа; должны передаваться как Lua-таблица, если ключ составной
  • operator (string) — тип операции, представленный строкой
  • field_identifier (number-or-string) — поле, к которому будет применена операция.
  • value (lua_value) — значение, которое будет применено

Возвращает

  • обновленный кортеж
  • nil, если ключ не найден

Тип возвращаемого значения

tuple или nil

Возможные ошибки:

  • Изменение поля первичного ключа недопустимо.
  • ER_TRANSACTION_CONFLICT — при обнаружении конфликта транзакций в режиме транзакций MVCC.
s:update(44, {{'+', 1, 55 }, {'=', 3, 'x'}})