Как ведут себя текущее и предыдущее значение при добавлении и удалении строки?
Предыдущее значение можно взять переменной $#onfv
и через обращение #old.field_name
.
При добавлении строки — предыдущее значение пустое! Тк строки небыло.
При удалении строки — текущее значение пустое! Тк строки больше нет.
Поэтому, если вы хотите выполнить действие поп триггеру удаление и использовать значение из поля удаляемой строки, то нужно взять предыдущее значение (то, которое было перед удалением).
Код действия по триггеру удаление:
=: recalculate(table: 'table'; where: 'connect_field' = $#onfv)
Как можно разрешить действие только при определенном переходе одного значения поля в другое?
Например у вас есть статусы [1,2,3,4]
и вам нужно выполнить действие, только если статус меняется с 3
на 4
:
Код действия:
=: if(condition: $#onfv = 3; condition: $#nfv = 4; then: $action)
action: set(table: 'table'; field: 'field' = "complete"; where: 'num' = $#nci)
Какое значение мы должны использовать если хотим выполнить действие с использованием данных удаляемой строки?
Предыдущее значение!
=: recalculate(table: 'table'; where: 'connect_field' = $#onfv)