Commenti(0)
Il comando DELIMITER
Introduzione al comando Delimiter della libreria client di MySQL
Quando si lavora con MySQL, la libreria client esegue un parsing preliminare delle istruzioni prima di inviarle al server. Per libreria si intende la MySQL Client Library, che è utilizzata sia dal client da riga di comando mysql, sia da tutte le API utilizzate per scrivere programmi e script che lavorino con MySQL.
Va da sè che necessario che la libreria sia in grado di comprendere quando un’istruzione è terminata e ne inizia un’altra. Per capirlo si basa sui delimitatori: una istruzione è delimitata dal catattere speciale GO (’\g’) o dal punto e virgola (’;’).
Il problema si presenta quando creiamo uno stored program (Stored Procedure, Trigger, Evento) composto da più istruzioni. Infatti per crearlo o per modificarlo useremo un comando CREATE, che conterrà una serie di istruzioni che vanno a costituirne il corpo; queste istruzioni saranno separate da un delimitatore e se questo fosse il punto e virgola il client interpreterebbe questo carattere come “fine dell’istruzione CREATE”.
E’ dunque necessario cambiare temporaneamente il delimitatore tramite il comando DELIMITER. La sua sintassi è questa:
1DELIMITER nuovo_delimitatore
E’ importante evitare il punto e virgola!
Il nuovo delimitatore può essere una qualunque sequenza di caratteri che ci risulti utile o gradevole. Per convenzione si tende a usare un doppio slash (’//’), ma non è obbligatorio. Dopo l’istruzione CREATE o ALTER si utilizzerà il denominatore per indicare che l’istruzione è terminata. Subito dopo bisogna ricordarsi di ripristinare il delimitatore di default, cioè il punto e virgola. Ma vediamo un esempio:
Siccome DELIMITER è un comando client che non viene inviato al server non è una parola riservata.
Condividi su:
Esprimi un voto:
Argomenti chiave:

MySQL Report un tool di shell per tenere tutto sotto controllo