In questo post vediamo una caratteristica (piuttosto scomoda) di Mysql, ossia il fatto che un trigger , una volta creato, non è più modificabile.
Praticamente non esiste una istruzione del tipo “alter trigger”e bisogna necessariamente cancellarlo (drop trigger [nome_trigger]) e ricrearlo.
Vediamo un esempio completo
NOTA: In Mysql , quando si lancia uno script per creare una tabella oppure una stored procedure oppure un trigger, il carattere “;” è utilizzato come delimitatore standard.
Praticamente se si lancia uno script al primo ; Mysql ritiene chiuso lo stesso script; per questo motivo usando le Stored Procedure oppure i trigger da riga di comando è necessario cambiare i delimitatori.
Data una semplice tabella anagrafica con questa struttura:
|
Vogliamo realizzare un trigger che, per ogni delete sulla tabella anagrafica vada a scrivere il record di cancellazione su una tabella così definita.
|
Il nostro trigger sarà definito in questo modo:
|
Per “ritrovare” la sintassi di creazione del trigger lanciare il comando show triggers,
nel nostro caso avremo
|
Dobbiamo quindi salvarci queste informazioni, effettuare la drop trigger tr_anagrafica_canc e successivamente ricrearlo con le opportune modifiche.
Nessun commento:
Posta un commento