Base di conoscenze
1 000 FAQ, 500 tutorial e video esplicativi. Qui ci sono delle soluzioni!
Creare una funzione MySQL su Server Cloud
Questa guida illustra l'utilizzo di DELIMITER per creare funzioni MySQL su Server Cloud Infomaniak.
Introduzione
- Quando si creano funzioni o procedure memorizzate in MySQL, è fondamentale comprendere il ruolo dei delimitatori.
- L'uso corretto dei delimitatori è essenziale per evitare errori di sintassi che possono verificarsi a causa della presenza di più istruzioni SQL all'interno di una singola definizione di funzione o procedura.
Comprendere il delimitatore
Un delimitatore è un carattere o una sequenza di caratteri utilizzati per separare le istruzioni SQL in uno script. Per impostazione predefinita, MySQL utilizza il punto e virgola (;) come delimitatore. Tuttavia, quando si creano funzioni, procedure memorizzate o trigger che contengono più istruzioni SQL, è necessario modificare temporaneamente il delimitatore per evitare errori di sintassi.
Quando si crea una funzione, una procedura o un trigger, spesso è necessario utilizzare più istruzioni SQL all'interno del blocco BEGIN...END. Poiché il punto e virgola (;) viene utilizzato anche per terminare queste istruzioni interne, MySQL potrebbe interpretare il primo punto e virgola come la fine della definizione della funzione, causando un errore di sintassi. Per risolvere questo problema, è necessario modificare il delimitatore durante la definizione della funzione.
Creare una funzione semplice utilizzando delimitatori personalizzati
Prima di definire la funzione, è necessario indicare a MySQL che si utilizzerà un delimitatore diverso. Nell'esempio seguente, $$ viene utilizzato come nuovo delimitatore:
DELIMITER $$Con il nuovo delimitatore in uso, ora puoi definire la tua funzione. L'istruzione CREATE FUNCTION include il corpo della funzione, dove puoi utilizzare istruzioni SQL interne separate da punti e virgola senza che ciò crei problemi:
CREATE FUNCTION hello_world()
RETURNS TEXT
LANGUAGE SQL
BEGIN
RETURN 'Hello World';
END;
$$In questo esempio:
CREATE FUNCTION hello_world(): dichiara l'inizio della definizione della funzionehello_world.RETURNS TEXT: specifica il tipo di dati che la funzione restituisce.LANGUAGE SQL: indica che il linguaggio utilizzato per la funzione è SQL.BEGIN ... END: racchiude il codice della funzione. All'interno, il punto e virgola viene utilizzato per separare le istruzioni SQL.RETURN 'Hello World';: istruzione SQL che restituisce la stringa di caratteriHello World.
Dopo aver definito la funzione, riportare il delimitatore al suo stato predefinito (il punto e virgola). Questo consente di continuare a eseguire le istruzioni SQL abituali nei successivi script:
DELIMITER ;Link a questa FAQ: https://faq.infomaniak.com/1150
Questa FAQ è stata utile?