Как создать SQLite Trigger для расчета текущих итогов в таблице «Фактический»? Следующий код SQL должен обновить таблицу AccountBalances, чтобы столбец «Баланс» подсчитывался от 1, 2, 3, ... rowcount. Однако триггер обновляет только вторую строку, даже если я включил рекурсивные_треги. Ниже приводится строка 1 = 1, строка 2 = 2, а строки после этого - нуль.Вычислить общее количество в таблице SQLite с помощью триггеров
CREATE TEMP TABLE "AccountBalances" (
"Id" INTEGER PRIMARY KEY,
"DateId" INT,
"AccountId" INT,
"AccountCurrAmount" REAL,
"Balance" REAL);
INSERT INTO "AccountBalances"
(DateId, AccountId, AccountCurrAmount)
SELECT DateId, AccountId, Sum(AccountCurrAmount)
FROM Actual
GROUP BY DateId, AccountId
ORDER BY AccountId, DateId;
CREATE TRIGGER UpdateAccountBalance AFTER UPDATE ON AccountBalances
BEGIN
UPDATE AccountBalances
SET Balance = 1 + new.Balance
WHERE Id = new.Id + 1;
END;
PRAGMA recursive_triggers = 'on';
UPDATE AccountBalances
SET Balance = 1
WHERE Id = 1
Вы правы о моем SQLite версия. Это не сработало, потому что я использовал плагин SQLite Manager 0.5.15 для Firefox. Он работал, когда я использовал официальный sqlite3.exe. –
Похоже, что я получаю сообщение «Ошибка: слишком много уровней триггерной рекурсии», когда я использую его со столом с более чем 1000 строк. Мне придется реализовать текущие итоги другим способом. –