Originariamente inviato da comas17
mah, non conosco mysql ma mi sembra che semplicemente abbiano creato diversi trigger per separare le diverse operazioni (ad esempio di aggiornamento) ed in ogni trigger vanno ad aggiornare un solo campo quando invece probabilmente si può fare tutto con una sola operazione
Ad esempio se noti i trigger RA3_4, RA4_1, RA4_2 sono tutti "after insert" della stessa tabella (messainscena) ed hanno tutti la stessa condizione "Where (data = New.data and ora = New.ora, spazio = New.spazio);"
Semplicemente ogni trigger aggiorna una colonna; ma potresti provare allora ad unire il tutto in una istruzione sola con una cosa del tipo
codice:
after insert on messaInScena
for each row
update messaInScena
set postiDisponibili = (select capienza
from spazio
where nome = New.spazio),
New.prezzoRidotto = New.prezzoIntero * 0.8,
New.prezzoStudenti = New.prezzoIntero * 0.5
where (data = New.data and
ora = New.ora,
spazio = New.spazio);
cioè aggiorni tutte le colonne in un colpo solo (tanto la condizione per aggiornarle è la stessa)
in maniera analoga puoi unificare RA4_3 e RA4_4 e tutti gli RA5 (che agiscono su un'altra tabella)