Forse hai ragione tu...(purtroppo non ho come provarlo
uff)
Quindi dovrebbe venire così?
Codice PHP:
CREATE TRIGGER OR REPLACE upd_tr
AFTER UPDATE ON prenotazioni
FOR EACH ROW
BEGIN
SELECT id_viaggio, data_inizio
FROM DATEDISPONIBILI
WHERE id_viaggio = new.id_viaggio
AND data_inizio = new.data_inizio
UPDATE DATEDISPONIBILI
SET posti_disponibili_rimasti = posti_disponibili_rimasti - 1
WHERE id_viaggio = new.id_viaggio AND data_inizio = new.data_inizio
UPDATE DATEDISPONIBILI
SET posti_disponibili_rimasti = posti_disponibili_rimasti + 1
WHERE id_viaggio = old.id_viaggio AND data_inizio = old.data_inizio
END
e così va pure bene?
Codice PHP:
CREATE TRIGGER OR REPLACE upd_tr
AFTER UPDATE ON prenotazioni
FOR EACH ROW
BEGIN
IF (id_viaggio = (SELECT id_viaggio
FROM DATEDISPONIBILI
WHERE id_viaggio = new.id_viaggio)
AND data_inizio = (SELECT data_inizio
FROM DATEDISPONIBILI
WHERE data_inizio = new.data_inizio)
)
THEN
UPDATE DATEDISPONIBILI
SET posti_disponibili_rimasti = posti_disponibili_rimasti - 1
WHERE id_viaggio = new.id_viaggio AND data_inizio = new.data_inizio
UPDATE DATEDISPONIBILI
SET posti_disponibili_rimasti = posti_disponibili_rimasti + 1
WHERE id_viaggio = old.id_viaggio AND data_inizio = old.data_inizio
END IF
END
e poi dove devo inserire "old.data_inizio debba essere <> new.data_inizio"?
Scusate per tutte ste domande