PostgreSQL – Salir

En PostgreSQL, la declaración EXIT se usa para terminar todo tipo de bucles como bucles incondicionales, un bucle while o un bucle for o terminar un bloque de código especificado por las palabras clave begin..end .

Uso de EXIT para bucles 

Podemos usar la salida para terminar las declaraciones en bucle usando la siguiente sintaxis:

Sintaxis:

exit [label] [when condition]

Si analizamos la sintaxis anterior:

  • Etiqueta: La etiqueta se utiliza para indicar el bucle del que queremos salir. A menudo se usa en el caso de bucles anidados. Si una etiqueta no está presente, el bucle actual finaliza.
     
  • Condición: La condición es una expresión booleana simple que determina cuándo queremos terminar el ciclo. Cuando el valor de la expresión booleana se vuelve verdadero, el bucle finaliza.

Los dos anteriores son opcionales. Podemos usar exit con una condición como:

exit when cnt < 5;

Sin usar la condición de salida, podemos reescribir el mismo código usando la instrucción IF como:

if cnt < 5 then
  exit;
end if;

Ejemplo:

Supongamos que tenemos un ciclo have que se usa para imprimir todos los números del 1 al 10. Podemos usar la declaración EXIT de la siguiente manera para limitar la impresión de los números hasta el 7 solamente.

do $$
declare
 n integer:= 8;
 cnt integer := 1 ;  
begin
loop  
exit when cnt = n ;
raise notice '%', cnt;  
cnt := cnt + 1 ;  
end loop;  
end; $$;

Producción:

En el ejemplo anterior, terminamos nuestro ciclo tan pronto como el valor de nuestra variable cnt alcanza n (aquí 8) y, por lo tanto, solo se imprimen los valores hasta 7.

Usando EXIT para salir de un bloque

Entonces podemos usar la declaración exit para terminar un bloque de código especificado por las palabras clave begin..end . En este caso, la salida pasa directamente el flujo del programa después de la palabra clave final, finalizando así el bloque actual.

Sintaxis:

<<block_label>>
BEGIN
   Statements
   EXIT [block_label] [WHEN condition];
   Statements
END block_label;

Usando esta sintaxis, podemos terminar el bloque de código prematuramente, evitando así que se ejecuten las declaraciones después de la salida.

Ejemplo:

El siguiente ejemplo muestra cómo podemos usar EXIT para salir de un bloque.

do
$$
begin
 raise notice '%', 'Before block';
 <<normalblock>>  
  begin
 raise notice '%', 'Before exit ; inside block';
   exit normalblock;
    raise notice '%', 'After exit ; inside block';
  end;
  raise notice '%', 'End of block';
end;
$$;

Producción:

En el ejemplo anterior, la declaración después de la salida no se imprimió ya que el bloque terminó usando EXIT antes de la declaración. Por lo tanto, dentro del bloque, solo se ejecutaron las declaraciones antes de EXIT y después de eso, el flujo simplemente pasa después de que finalizó el bloque.

Publicación traducida automáticamente

Artículo escrito por ashutoshrathi y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *