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

before_replace

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

Параметры:

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

Возвращает

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

Если функция-триггер возвращает значение:

  • если возвращаемое значение отсутствует, выполнение продолжается, и новое значение вставляется или заменяется;
  • если значение равно nil, кортеж будет удален;
  • если значение совпадает со старым параметром, функция on_replace не будет вызвана, а изменение данных будет пропущено. Возвращаемое значение будет отсутствовать;
  • если значение совпадает с новым параметром, это равносильно тому, что функция before_replace не была вызвана;
  • если значение представляет собой другой кортеж, он используется для вставки/замены.

Тем не менее, если функция-триггер возвращает старый кортеж или вызовет run_triggers(false), это не повлияет на другие триггеры, активируемые в том же запросе вставки, обновления или замены.

function f1 (old, new) return endfunction f2 (old, new) return nil endfunction f3 (old, new) return old endfunction f4 (old, new) return new endfunction f5 (old, new) return box.tuple.new({new[1],'b'}) end