Base di conoscenze

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

Creare una funzione MySQL su Server Cloud

Aggiornamento 24/02/2026

Questa guida dettaglia l'uso di DELIMITER per creare funzioni MySQL su Server Cloud Infomaniak.

 

Premessa

  • Durante la creazione di 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 in una sola 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 cambiare 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. Essendo il punto e virgola (;) 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 aggirare questo problema, è necessario cambiare 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 altro delimitatore. Nell'esempio seguente, $$ viene utilizzato come nuovo delimitatore:

DELIMITER $$

Con il nuovo delimitatore in atto, è possibile definire ora la funzione. Il CREATE FUNCTION include il corpo della funzione, dove è possibile utilizzare istruzioni SQL interne separate da punti e virgole senza 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, reimpostare il delimitatore sul valore predefinito (il punto e virgola). Questo consente di continuare ad eseguire le istruzioni SQL abituali nei tuoi script successivi:

DELIMITER ;

Questa FAQ è stata utile?