Поскольку вы хотите переопределить значение, указанное в операторе UPDATE
, вам необходимо использовать триггер BEFORE UPDATE
. Как то так
CREATE OR REPLACE TRIGGER Net_winnings_trigger
BEFORE UPDATE OF total_winnings ON Players
FOR EACH ROW
BEGIN
IF(:old.total_winnings > :new.total_winnings)
THEN
:new.total_winnings := :old.total_winnings;
END IF;
END;
Но переопределение значения, указанного в операторе UPDATE
, опасная игра. Если это не должно произойти, вам действительно следует выдать ошибку, чтобы приложение могло знать, что возникла проблема. В противном случае вы создаете всевозможные возможности для приложения принимать неправильные решения в будущем.