У меня есть таблица SQLite с полем «Баланс», который будет использоваться в качестве промежуточной суммы.У меня есть определенный триггер, который вычисляет Баланс при вставке новых записей, но он не срабатывает при первой вставке, поэтому Баланс в первой записи равен нулю.Все следующие записи рассчитываются правильно.
Текущее определение триггера:
CREATE TRIGGER [UpdateBalance_Insert] AFTER INSERT ON [Transaction] FOR EACH ROW BEGIN
REPLACE INTO [Transaction]
SELECT t1.[ID],
t1.[Date],
t1.[Transaction],
t1.[Debit],
t1.[Credit],
( SELECT SUM( t2.[Credit] ) - SUM( t2.[Debit] ) + new.[Credit] - new.[Debit]
FROM [Transaction] AS t2
WHERE t2.[Date] < t1.[Date] OR (
t2.[Date] = t1.[Date] AND t2.[ID] < t1.[ID] )
) AS [Balance]
FROM [Transaction] AS t1
WHERE [ID] = new.[ID];
UPDATE [Transaction]
SET [Balance] = [Balance] + new.[Credit] - new.[Debit]
WHERE [Date] > new.[Date];
END
Редактировать: Характер моего вопроса изменился между вводом заголовка и вводом описания.Выше мой оригинальный триггер.Мой первоначальный вопрос заключался в том, можно ли создать отдельный триггер для обработки только первой вставки, но теперь мне интересно, можно ли изменить существующий триггер для выполнения необходимых функций.