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

on_replace

on_replace([trigger-function [, old-trigger-function]])

Параметры:

  • trigger-function (function) — функция, которая станет функцией-триггером; подробности о параметрах функции-триггера см. в примере 2 ниже
  • old-trigger-function (function) — существующая функция-триггер, которая будет заменена на trigger-function

Возвращает

nil или указатель на функцию

tarantool> x = 0         > function f ()         >   x = x + 1         > endtarantool> box.space.my_space_name:on_replace(f)
  • (tuple) старое значение, содержащее данные до начала запроса,
  • (tuple) новое значение, содержащее данные после завершения запроса,
  • (string) имя спейса,
  • (string) тип запроса: INSERT, DELETE, UPDATE или REPLACE.
box.schema.space.create('space_1')box.space.space_1:create_index('space_1_index',{})function on_replace_function (old, new, s, op) print(old) print(op) endbox.space.space_1:on_replace(on_replace_function)box.space.space_1:insert{1,'Hi'}box.space.space_1:delete{1}
tarantool> s = box.schema.space.create('space53')tarantool> s:create_index('primary', {parts = {{field = 1, type = 'unsigned'}}})tarantool> function replace_trigger()         >   replace_counter = replace_counter + 1         > endtarantool> s:on_replace(replace_trigger)tarantool> replace_counter = 0tarantool> t = s:insert{1, 'First replace'}tarantool> t = s:insert{2, 'Second replace'}tarantool> s:drop()tarantool> replace_counter
tarantool> box.space.test:on_replace(fiber.yield)tarantool> box.space.test:replace{1, 2, 3}2020-02-02 21:22:03.073 [73185] main/102/init.lua txn.c:532 E> ER_TRANSACTION_YIELD: Transaction has been aborted by a fiber yield---- error: Transaction has been aborted by a fiber yield...