Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 1. Да се напише/ат соодветниот/те тригер/и за одржување на конзистентноста на атрибутите „br_izlozbi_otvoreno“ и „br_izlozbi_zatvoreno“ при додавање на записите од кои зависи нивната вредност.
- CREATE TRIGGER TR_otvoreno
- AFTER INSERT ON Izlozeni
- FOR EACH ROW
- BEGIN
- UPDATE Umetnicko_delo
- SET br_izlozbi_otvoreno=br_izlozbi_otvoreno+1
- WHERE shifra=NEW.shifra_d AND NEW.ime_i IN (SELECT DISTINCT Izlozba.ime_i FROM Izlozba JOIN Muzej ON Izlozba.shifra_muzej=Muzej.shifra WHERE tip='otvoreno');
- END;
- CREATE TRIGGER TR_zatvoreno
- AFTER INSERT ON Izlozeni
- FOR EACH ROW
- BEGIN
- UPDATE Umetnicko_delo
- SET br_izlozbi_zatvoreno=br_izlozbi_zatvoreno+1
- WHERE shifra=NEW.shifra_d AND NEW.ime_i IN (SELECT DISTINCT Izlozba.ime_i FROM Izlozba JOIN Muzej ON Izlozba.shifra_muzej=Muzej.shifra WHERE tip='zatvoreno');
- END;
- 2. Да се напише/ат соодветниот/те тригер/и за одржување на конзистентноста на атрибутот „br_bendovi“ при зачленување во бенд.
- CREATE TRIGGER TR_br_bendovi
- AFTER INSERT ON Muzicar_bend
- FOR EACH ROW
- BEGIN
- UPDATE Muzicar
- SET br_bendovi=br_bendovi+1
- WHERE id=NEW.id_muzicar;
- END;
- 3. Да се напише/ат соодветниот/те тригер/и за одржување на конзистентноста на атрибутот „prosechna_ocena“ при додавање на записите од кои зависи неговата вредност.
- CREATE TRIGGER TR_zapisi
- AFTER INSERT ON Preporaka
- FOR EACH ROW
- WHEN NEW.naslov IS NOT NULL AND NEW.ocena IS NOT NULL
- BEGIN
- UPDATE Video_zapis
- SET prosechna_ocena= (SELECT AVG(Preporaka.ocena) FROM Preporaka WHERE Preporaka.naslov=NEW.naslov GROUP BY Preporaka.naslov);
- END;
- 4. Сакаме да водиме евиденција за соседните градови на град кој е избришан од системот.
- Не сакаме да водиме евиденција за посетите на места на корисници кои се избришани од системот.
- CREATE TRIGGER TR_sosedi
- AFTER DELETE ON Grad
- FOR EACH ROW
- BEGIN
- UPDATE Sosedi
- SET grad2= NULL
- WHERE grad2=OLD.id_mesto;
- UPDATE Sosedi
- SET grad1= NULL
- WHERE grad1=OLD.id_mesto;
- END;
- CREATE TRIGGER TR_poseti
- AFTER DELETE ON Korisnik
- FOR EACH ROW
- BEGIN
- DELETE FROM Poseta
- WHERE kor_ime=OLD.kor_ime;
- END;
- 5. Да се напише/ат соодветниот/те тригер/и за одржување на конзистентноста на атрибутот „broj_poseti“ при додавање на записите од кои зависи нивната вредност.
- CREATE TRIGGER TR_mesta
- AFTER INSERT ON Poseta
- FOR EACH ROW
- BEGIN
- UPDATE Mesto
- SET broj_poseti=(SELECT COUNT(DISTINCT kor_ime) FROM Poseta WHERE Poseta.id_mesto=NEW.id_mesto)
- WHERE id=NEW.id_mesto;
- END;
- 6. Да се напише/ат соодветниот/те тригер/и за одржување на конзистентноста на атрибутот „broj_poseti“ при додавање на записите од кои зависи нивната вредност.
- CREATE TRIGGER TR_poseti
- AFTER INSERT ON Poseta
- FOR EACH ROW
- --WHEN NEW.id_mesto NOT EXISTS (SELECT DISTINCT id_mesto FROM Poseta WHERE kor_ime=NEW.kor_ime)
- BEGIN
- UPDATE Korisnik
- SET broj_poseti=(SELECT COUNT(DISTINCT id_mesto) FROM Poseta WHERE Poseta.id_mesto=NEW.id_mesto)
- WHERE kor_ime=NEW.kor_ime;
- END;
- 7. Да се напише соодветниот тригер/и за одржување на конзистентноста на атрибутот „brNarachki“ при додавање, бришење или ажурирање на записите од кои зависи неговата вредност.
- CREATE TRIGGER TR_naracki1
- AFTER INSERT ON Narachka
- FOR EACH ROW
- --WHEN NEW.marketID IS NOT NULL
- BEGIN
- UPDATE Market
- SET brNarachki=brNarachki+1
- WHERE ID=NEW.marketID;
- END;
- CREATE TRIGGER TR_naracki2
- AFTER DELETE ON Narachka
- FOR EACH ROW
- --WHEN NEW.marketID IS NOT NULL
- BEGIN
- UPDATE Market
- SET brNarachki=brNarachki-1
- WHERE ID=OLD.marketID;
- END;
- CREATE TRIGGER TR_naracki3
- AFTER UPDATE ON Narachka
- FOR EACH ROW
- --WHEN NEW.marketID IS NOT NULL
- BEGIN
- UPDATE Market
- SET brNarachki=brNarachki-1
- WHERE ID=OLD.marketID;
- UPDATE Market
- SET brNarachki=brNarachki+1
- WHERE ID=NEW.marketID;
- END;
- 8. Да се напише соодветниот тригер/и за одржување на конзистентноста на атрибутот „brSpecijaliteti“ при додавање, бришење или ажурирање на записите од кои зависи неговата вредност.
- CREATE TRIGGER TR_naracki1
- AFTER INSERT ON Prodazhba
- FOR EACH ROW
- --WHEN NEW.marketID IS NOT NULL
- BEGIN
- UPDATE Market
- SET brSpecijaliteti=brSpecijaliteti+1
- WHERE ID=NEW.marketID;
- END;
- CREATE TRIGGER TR_naracki2
- AFTER DELETE ON Prodazhba
- FOR EACH ROW
- --WHEN NEW.marketID IS NOT NULL
- BEGIN
- UPDATE Market
- SET brSpecijaliteti=brSpecijaliteti-1
- WHERE ID=OLD.marketID;
- END;
- CREATE TRIGGER TR_naracki3
- AFTER UPDATE ON Prodazhba
- FOR EACH ROW
- --WHEN NEW.marketID IS NOT NULL
- BEGIN
- UPDATE Market
- SET brSpecijaliteti=brSpecijaliteti-1
- WHERE ID=OLD.marketID;
- UPDATE Market
- SET brSpecijaliteti=brSpecijaliteti+1
- WHERE ID=NEW.marketID;
- END;
- 9. Да се напише соодветниот тригер/и за одржување на конзистентноста на атрибутот „brBileti“ при додавање или бришење на записите од кои зависи неговата вредност.
- CREATE TRIGGER TR_bileti
- AFTER INSERT ON Bilet
- FOR EACH ROW
- WHEN NEW.patnik_embg IS NOT NULL
- BEGIN
- UPDATE Patnik
- SET brBileti=brBileti+1
- WHERE embg=NEW.patnik_embg;
- END;
- CREATE TRIGGER TR_bileti2
- AFTER DELETE ON Bilet
- FOR EACH ROW
- BEGIN
- UPDATE Patnik
- SET brBileti=brBileti-1
- WHERE embg=OLD.patnik_embg;
- END;
- 10. Да се напише/ат соодветниот/те тригер/и за одржување на конзистентноста на атрибутот „broj_preporaki“ при додавање на записите од кои зависи неговата вредност.
- CREATE TRIGGER TR_preporaki
- AFTER INSERT ON Preporaka
- FOR EACH ROW
- --WHEN NEW.k_ime_od
- BEGIN
- UPDATE Korisnik
- SET broj_preporaki=broj_preporaki+1
- WHERE k_ime=NEW.k_ime_od OR k_ime=NEW.k_ime_na;
- END;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement