Commenti(0)
Creare Trigger MySQL
Ecco come creare trigger in MySQL
Un trigger è una procedura o routine SQL che specifica le operazioni automatizzate da eseguire sul database al verificarsi di un evento di tipo UPDATE, INSERT o DELETE su una persistente tabella. Un trigger può attivare anche altri trigger o store procedure.
L’introduzione di trigger all’interno di una Base di Dati permette la gestione automatica di particolari procedure in risposta a determinati eventi esterni. Le Basi di Dati di questo tipo vengono dette Basi di Dati attive. I trigger rendono reattivo il comportamento del sistema alle sollecitazioni esterne.
Il vantaggio introdotto dai trigger è lo spostamento di alcuni controlli e procedure automatiche da livello applicativo al livello di schema.
La sintassi per la creazione di un trigger in MySQL è la seguente:
- DEFINER determina i privilegi da applicare quando il trigger è attivo; *trigger_time, rappresenta il tipo di trigger: BEFORE o AFTER;
- trigger_event, indica il tipo di primitiva che attiva il trigger:
- INSERT: il trigger è attivato quando una nuova tupla è inserita nella tabella target; ad esempio, attraverso le primitive INSERT, LOAD DATA e REPLACE;
- UPDATE: il trigger è attivato quando una tupla della tabella target viene modificata; ad esempio, attraverso la primitiva UPDATE;
- DELETE: il trigger è attivato quando una tupla della tabella target viene cancellata; ad esempio, attraverso le primitive DELETE e REPLACE;
- trigger_stmt, è la primitiva SQL da eseguire, una volta che il trigger è attivo; se si desidera eseguire una procedura SQL, si può utilizzare il costrutto BEGIN…END.
Per accedere alle colonne della tabella target si utilizzano gli alias OLD e NEW.
- OLD.col_name (read-only) si riferisce alla colonna della tabella target prima della modifica effettuata dall’evento associato al trigger;
- NEW.col_name si riferisce alla colonna della tabella target dopo la modifica effettuata dall’evento.
I trigger non possono invocare procedure che restituiscono dati all’utente o che utilizzano SQL dinamico; inoltre non possono invocare procedure che esplicitamente iniziano o terminano una transazione (primitive START TRANSACTION, END TRANSACTION, COMMIT o ROLLBACK).
In MySql non possono essere creati due trigger con evento e tipo evento uguali, su una stessa tabella target.
Condividi su:
Esprimi un voto:
Argomenti chiave:

MySQL Report un tool di shell per tenere tutto sotto controllo