Base di conoscenze

1 000 FAQ, 500 tutorial e video esplicativi. Qui ci sono delle soluzioni!

Creare una funzione MySQL su Server Cloud

Aggiornamento 06/08/2026

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 funzione hello_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 caratteri Hello 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 ;

Questa FAQ è stata utile?