Обновлена 15 сентября 2026 г. в 08:55
tuple_object:upsert()
То же самое, что tuple_object:update(), но с игнорированием ошибок. В
случае ошибки кортеж остается нетронутым, но выводится сообщение об
ошибке. Игнорируются только клиентские ошибки, такие как неверный тип
поля или неправильный индекс/имя поля. Системные ошибки, такие как
нехватка памяти, не игнорируются и вызываются так же, как при обычном
update(). Обратите внимание, что игнорируются только ошибочные
операции. Все корректные операции применяются.
Параметры:
operator(string) — тип операции, заданный строкой (например, '=' — «присвоить новое значение»)field_no(number) — поле, к которому применяется операция. Номер поля может быть отрицательным — в этом случае отсчет ведется с конца кортежа. (#кортежа + отрицательный номер поля + 1)value(lua_value) — значение, которое будет применено
Возвращает
новый кортеж
Тип возвращаемого значения
tuple
tarantool> t = box.tuple.new({1, 2, 3})tarantool> t2 = t:upsert({{'=', 5, 100}})UPSERT operation failed:ER_NO_SUCH_FIELD_NO: Field 5 was not found in the tuple---...tarantool> t---- [1, 2, 3]...tarantool> t2---- [1, 2, 3]...tarantool> t2 = t:upsert({{'=', 5, 100}, {'+', 1, 3}})UPSERT operation failed:ER_NO_SUCH_FIELD_NO: Field 5 was not found in the tuple---...tarantool> t---- [1, 2, 3]...tarantool> t2---- [4, 2, 3]...