Здравствуйте!
Имеется таблица accounts со столбцами Active (Bool), СheckLimit (Bool), MaxLimit (Numeric), CheckCount (Numeric), LimitReached(Bool). Задача: выставить True в столбце LimitReached той строки, в которой поле Active is True, СheckLimit is True, CheckCount == MaxLimit после события обновления столбца LimitCount.
Строки привожу ниже, по условию подходят две строки (3 и 4), при обновлении поля LimitCount до 5 и 6 соответственно.
Пробовал создать триггер так, но не работает:
Код sqliteCREATE TRIGGER SetCheckLimit
AFTER UPDATE OF LimitCount
ON accounts
FOR EACH ROW
WHEN ( ( (
SELECT Active
FROM accounts
)
IS 1) AND
( (
SELECT CheckLimit
FROM accounts
)
IS 1) AND
( (
SELECT CheckCount
FROM accounts
)
== (
SELECT MaxLimit
FROM accounts
)
) )
BEGIN
UPDATE accounts
SET LimitReached = 1;
END;
Пробовал начать с одного условия, например Active is True - так же не работает.
Судя по синтаксису, можно писать довольно сложные условия для триггера, значит я где то ошибся в выражении. В чем я ошибся?
Синтаксис выражений sqlite