Le Label

Sintassi

label: <construtto>
[label]

Le label (etichette) sono identificatori di MariaDB/MySQL che identificano un costrutto BEGIN ... END. Hanno una lunghezza massima di 16 caratteri e possono essere virgolettate con i backtick (`).

Le etichette hanno una parte iniziale e una finale. Quella iniziale deve precedere la porzione di codice a cui si riferisce, deve essere seguita dai due punti (:) e può trovarsi sia sulla stessa riga sia su una diversa. La parte finale è opzionale e non aggiunge nulla, ma può rendere il codice più leggibile. Se presente, deve precedere il delimitatore del costrutto (;). I costrutti identificati da un'etichetta possono essere annidati. Ogni costrutto può essere associato ad una sola etichetta.

Le istruzioni LEAVE e ITERATE possono essere utilizzate rispettivamente per uscire da una porzione di codice identificata da un'etichetta, o ripetere la sua esecuzione. LEAVE e ITERATE devono trovarsi nella stessa Stored Routine, Trigger o Evento che contiene l'etichetta.

Esempi

Una semplice etichetta usata per uscire da un LOOP:

CREATE PROCEDURE `test_sp`()
BEGIN
	`my_label`:
	LOOP
		SELECT 'looping';
		LEAVE `my_label`;
	END LOOP;
	SELECT 'out of loop';
END;

La seguente etichetta è usata per uscire dalla procedura, e ha una parte finale:

CREATE PROCEDURE `test_sp`()
`my_label`:
BEGIN
	IF @var = 1 THEN
		LEAVE `my_label`;
	END IF;
	DO something();
END `my_label`;

Commenti

Sto caricando i commenti......
Content reproduced on this site is the property of its respective owners, and this content is not reviewed in advance by MariaDB. The views, information and opinions expressed by this content do not necessarily represent those of MariaDB or any other party.