«« ( Date ) »» // «« ( Thread ) »» // ri5is - 2005

Triger Voznja (za Profesora i ostale)

by Bojic Petar
nedelja, 20. novembar 2005 - 03:00.

Molim profesora da prokomentarise sledeca dva resenja zadatka iz trigera iz roka 13.11.2004. posto
nekad imam nedoumice na koji dogadjaj triger treba da reaguje.

U zadatku se radilo o rent-a-car agenciji.
Trebalo je sastaviti triger Voznja koji nakon zavrsetka voznje azurira ostale podatke u bazi.

Prvo resenje :

CREATE TRIGGER Voznja
AFTER DELETE ON Vozi
REFERENCING OLD ROW AS Stari
FOR EACH ROW

BEGIN

DECLARE vDatumVremeDo AS TIMESTAMP;
DECLARE vIDMesDo AS INTEGER;

SET vDatumVremeDo = CurrentDateTime();

SELECT IDMes
INTO vIDMesDo
FROM Je_U_Mestu
WHERE IDAut = Stari.IDAut;

INSERT INTO Voznja
VALUES(next_key(Voznja), Stari.DatumVremeOd, vDatumVremeDo, Stari.IDMesOd, vIDMesDo, 0, Stari.IDAut, Stari.IDKom);

END

Ovde ne znam na sta treba postaviti atribut "Km" u Voznja i ko bi to trebao naknadno da unese i na osnovu kojih podataka.

Drugo resenje : (verovatno netacno iz vise razloga)

CREATE TRIGGER Voznja
AFTER INSERT ON Voznja
REFERENCING NEW ROW AS Novi
FOR EACH ROW

BEGIN

DELETE FROM Vozi
WHERE IDKom = Novi.IDKom
AND IDAut = Novi.IDAut;

END


Petar Bojic