pimmeMedlem sedan sep. 20011 086 inlägg Hej, läser för tillfället en kurs i databasteknik.
Triggers är inget som vi har gått igenom än och jag tror inte vi kommer göra det heller, men jag ville leka lite med det ändå.
Det står inget ordentligt exempel på Trigger vid INSERT i boken utan bara vid UPDATE, men vad jag förstår ska det se ungefär likadant ut.
Den här koden testar jag (har testat lite olika modifieringar på den med) men den fungerar inte.
CREATE TRIGGER ReservationTrigger
BEFORE INSERT ON Reservation
REFERENCING
NEW ROW AS newRow
UPDATE Shows
SET availableSeats = availableSeats - 1
WHERE Shows.showId = newRow.showId;
Det som händer är ingenting. Den verkar vänta på en fortsättning på mitt CREATE TRIGGER kommando och jag är tvungen att trycka ctrl+c för att avbryta.
Nån som vet vad som är fel?
LarsGMedlem sedan dec. 200012 464 inlägg CREATE TRIGGER ReservationTrigger
BEFORE INSERT ON Reservation
for each row
UPDATE Shows
SET availableSeats = availableSeats - 1
WHERE Shows.showId = :new.showId;
pimmeMedlem sedan sep. 20011 086 inlägg Tyvärr, det verkar inte fungera heller. :(
SQL*Plus skrev:
SQL> CREATE TRIGGER ReservationTrigger
2 BEFORE INSERT ON Reservation
3 for each row
4 UPDATE Shows
5 SET availableSeats = availableSeats - 1
6 WHERE Shows.showId = :new.showId;
7
8
Här kan jag sen trycka på enter hur många gånger jag vill, det händer inget mer.
LarsGMedlem sedan dec. 200012 464 inlägg Det verkar mer vara något problem med verktyg du använder. Har för mig att det finns något där man avslutar kommandon med /
pimmeMedlem sedan sep. 20011 086 inlägg Ahh, tackar. Nu fungerade det.
Eller, var tvungen att lägga till begin och end också :)
CREATE TRIGGER ReservationTrigger
BEFORE INSERT ON Reservations
for each row
BEGIN
UPDATE Shows
SET availableSeats = availableSeats - 1
WHERE Shows.showId = :new.showId;
END;
/