Есть несколько способов реализовать это, и одним из них является использование уровня строки Trigger
.
Но я бы порекомендовал вам использовать View
, потому что не всегда стоит иметь таблицупросто для хранения значений, которые могут быть сгенерированы из другой таблицы.
Создание представления
CREATE OR REPLACE VIEW v_table1 as select 'TOTAL OF DAY' as DESCRIPT
, SUM(prices) as TOTALPRICES
FROM Table1;
Это позволяет просто запросить представление, и значения будут сгенерированыиз базовых таблиц.
select * from v_table1;
Если вам кажется, что базовый запрос представления может быть медленным, вы можете преобразовать его в материализованное представление.
Триггер должен быть вашим последним вариантом.
CREATE OR REPLACE TRIGGER tr_table2 BEFORE INSERT ON Table2
FOR EACH ROW
BEGIN
SELECT SUM(PRICES) INTO :NEW.TOTALPRICES FROM Table1;
END;
/
Демо