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;