Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --1. trigger usówający film wraz z biletami reżyserem i niszczący powiązania z aktorami
- CREATE OR REPLACE TRIGGER usun_film
- BEFORE DELETE ON Film
- FOR EACH ROW
- BEGIN
- DELETE FROM wyswietla w WHERE w.Id_filmu = :OLD.Id_filmu;
- DELETE FROM zagrali z WHERE z.Id_filmu = :OLD.Id_filmu;
- DELETE FROM Bilet b WHERE b.Id_filmy = :OLD.Id_filmu;
- DELETE FROM Rezyser r WHERE r.Id_filmu = :OLD.Id_filmu;
- END;
- /
- DELETE FROM Film WHERE Film.Id_filmu = 3;
- --2. trigger śledzący zmiany dokonywane w tabeli Film
- DROP SEQUENCE szpieguj_s;
- CREATE SEQUENCE szpieguj_s ORDER;
- DROP TABLE Szpieguj_inf CASCADE CONSTRAINTS;
- CREATE TABLE Szpieguj_inf(
- Id_op NUMBER(6),
- Rodzaj_op VARCHAR2(10),
- DATA DATE,
- Uzytkownik VARCHAR2(30),
- Tytul VARCHAR2(100)
- );
- CREATE OR REPLACE TRIGGER szpieguj
- BEFORE INSERT OR UPDATE OR DELETE ON Film
- FOR EACH ROW
- BEGIN
- CASE
- WHEN INSERTING THEN
- INSERT INTO Szpieguj_inf(Id_op, Rodzaj_op, DATA, Uzytkownik, Tytul) VALUES (szpieguj_s.NEXTVAL, 'INSERT', SYSDATE, ORA_LOGIN_USER, :NEW.Tytul);
- WHEN UPDATING THEN
- INSERT INTO Szpieguj_inf(Id_op, Rodzaj_op, DATA, Uzytkownik, Tytul) VALUES (szpieguj_s.NEXTVAL, 'UPDATE', SYSDATE, ORA_LOGIN_USER, :OLD.Tytul);
- WHEN DELETING THEN
- INSERT INTO Szpieguj_inf(Id_op, Rodzaj_op, DATA, Uzytkownik, Tytul) VALUES (szpieguj_s.NEXTVAL, 'DELETE', SYSDATE, ORA_LOGIN_USER, :OLD.Tytul);
- END CASE;
- END;
- /
- SELECT * FROM Szpieguj_inf;
- --3. trigger zabespiecz przed ustawieniem zbyt wysokiej ceny biletu
- CREATE OR REPLACE TRIGGER sprawdz_cene_biletu
- BEFORE INSERT OR UPDATE ON Bilet
- FOR EACH ROW
- BEGIN
- IF :NEW.Cena > 30 THEN
- CASE
- WHEN UPDATING THEN
- :NEW.Cena := :OLD.Cena;
- WHEN INSERTING THEN
- :NEW.Cena := 29;
- END CASE;
- END IF;
- END;
- /
- UPDATE Bilet SET Cena = 100 WHERE Id_biletu = 3;
- SELECT * FROM Bilet WHERE Id_biletu = 3;
- INSERT INTO Bilet VALUES (6666, 10, 6, 100, 0, 0300022);
- SELECT * FROM Bilet WHERE Id_biletu = 6666;
Add Comment
Please, Sign In to add comment