|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Dec 2004
Città: Treviso e Udine
Messaggi: 258
|
[Trigger MySQL] Come fare?
Salve a tutti, ho un problema. Sto finendo di implementare il mio database (che gestisce una fumetteria) e devo costruire un trigger che, ogni volta che esce un nuovo fumetto (ed esso viene aggiunto al database), confronta il numero di uscita con il numero dell'ultima uscita e, se più alto, aggiorna il numero dell'ultima uscita.
In parole povere abbiamo le seguenti tabelle: VOLUME(codice_prodotto,fumetto,uscita) Rappresenta la tabella dei singoli fumetti. codice_prodotto <- chiave primaria fumetto <- chiave esterna di FUMETTO (codice) FUMETTO(codice,nome,ultima_uscita) Rappresenta la tabella delle singole serie a fumetto. codice <- chiave primaria ultima_uscita <- attributo derivato che devo tenere aggiornato col mio trigger Il trigger che devo implementare deve agire ogni volta che si aggiunge un elemento alla tabella VOLUME. Ecco quello che avevo scritto io all'inizio: Codice:
CREATE TRIGGER aggiorna_ultima_uscita AFTER INSERT ON volume FOR EACH ROW BEGIN IF (NEW.numero > ultima_uscita) THEN UPDATE fumetto SET ultima_uscita = NEW.numero WHERE NEW.fumetto = codice; END IF; END; Qual'è la giusta sintassi per ottenere ciò che voglio? |
![]() |
![]() |
![]() |
#2 |
Member
Iscritto dal: Dec 2004
Città: Treviso e Udine
Messaggi: 258
|
Ok, ho risolto. Se vi interessa questa è la forma corretta:
Codice:
CREATE TRIGGER aggiorna_uscite AFTER INSERT ON volume FOR EACH ROW BEGIN declare uscite integer; select ultima_uscita into uscite from fumetto where codice = NEW.fumetto; IF (NEW.numero > uscite) THEN UPDATE fumetto SET ultima_uscita = NEW.numero WHERE NEW.fumetto = codice; END IF; END; |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 00:18.