Как правильно написать триггер на сумму чисел строки при появлении новой записи?
Нужен триггер, который, будет вписывать все поля с DECIMAL сумму в ячейку 'outcome'
CREATE TABLE maintable_pricetable (
id INTEGER NOT NULL
PRIMARY KEY AUTOINCREMENT,
transparency DECIMAL NOT NULL,
color DECIMAL NOT NULL,
pis DECIMAL NOT NULL,
purity DECIMAL NOT NULL,
intensity DECIMAL NOT NULL,
typicality DECIMAL NOT NULL,
purity2 DECIMAL NOT NULL,
intensity2 DECIMAL NOT NULL,
persistence DECIMAL NOT NULL,
typicality2 DECIMAL NOT NULL,
description VARCHAR (200) NOT NULL,
taster VARCHAR (20) NOT NULL,
date VARCHAR (10) NOT NULL,
harmony DECIMAL NOT NULL,
outcome VARCHAR (20),
сipher VARCHAR (6) NOT NULL);
Пример как будет выглядеть в живую. Триггер должен вписать это в 'Итог' aka 'outcome'

Простая генерация не подойдет
Ответы (1 шт):
Автор решения: louis
→ Ссылка
Как пример: ( необходимые поля суммы можно добавить самому )
-- триггер будет срабатывать после обновления строки и складывать результат в ячейку outcome
CREATE TRIGGER maintable_pricetable_sum_tr AFTER UPDATE ON maintable_pricetable
BEGIN
UPDATE maintable_pricetable
SET outcome = NEW.purity + NEW.intensity + NEW.typicality + NEW.purity2 -- и т.д
WHERE id= NEW.id;
END
P.S.
Небольшое примечание ( возможно ошибаюсь, давно триггеры писал для SQLlite )
Не знаю точно нужно и можно ли указывать конкретные столбцы на которые должен срабатывать триггер, так как в других СУБД, можно нарваться на рекурсию из-за того что триггер делает изменение в таблице на которую повешен триггер
Вроде потестил, проблем не было.