[PL-SQL] Trigger

Witam!

Mam dwie tabele:

CREATE TABLE Products(product_id INTEGER PRIMARY KEY, name VARCHAR2(20), description VARCHAR2(20), price INTEGER);

REATE TABLE Product_price_audit(product_id PRIMARY KEY, old_price INTEGER, new_price INTEGER, CONSTRAINT p_id FOREIGN KEY (product_id) REFERENCES Products(product_id));

Mam do napisania następujący TRIGGER i męczę się od jakiegoś czasu. Zaimplementuj wyzwalacz, który będzie informował użytkownika jeżeli dokonywana jest obniżka ceny produktu o więcej niż 25%. Dodatkowo informację umieść w tabeli product_price_audit. Jak do tej pory udało mi się zaimplementować pierwszą cześć zadania.

CREATE OR REPLACE TRIGGER Przecena

AFTER UPDATE OF price ON Products

FOR EACH ROW

WHEN (1-(new.price/old.price) > 0.25)

BEGIN

dbms_output.put_line('Obniżka ceny produktu większa niż 25%');

END

Będę wdzięczny za pomoc – Dodane 21.01.2013 (Pn) 22:35 – Rozwiązałem na dwóch triggerach:

CREATE OR REPLACE TRIGGER Przecena

BEFORE UPDATE OF price ON Products

FOR EACH ROW

WHEN (1-(new.price/old.price) > 0.25)

BEGIN

dbms_output.put_line('Obniżka ceny produktu większa niż 25%');

END


CREATE OR REPLACE TRIGGER PrzecenaAudit

AFTER UPDATE ON Products

FOR EACH ROW

BEGIN

INSERT INTO Product_price_audit(product_id, old_price, new_price)

VALUES(:old.product_id, :old.price, :new.price);

END;