Обновлена 15 сентября 2026 г. в 08:55
on_replace
Параметры:
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...