PostgreSQL: funciones definidas por el usuario

PostgreSQL usa la instrucción CREATE FUNCTION para desarrollar funciones definidas por el usuario.

Syntax: 
CREATE FUNCTION function_name(p1 type, p2 type)
 RETURNS type AS
BEGIN
 -- logic
END;
LANGUAGE language_name;

Analicemos la sintaxis anterior:

  • CREAR FUNCIÓN
  • DEVOLUCIONES
  • COMIENZO FIN
  • plpgsql

, inc.

base de datos de ejemplo de dvdrental

Cía

CREATE FUNCTION inc(val integer) RETURNS integer AS $$
BEGIN
RETURN val + 1;
END; $$
LANGUAGE PLPGSQL;

Ejecutar

La definición de función completa que proporcione a CREATE FUNCTION debe ser una string entre comillas simples. Significa que si la función tiene una comilla simple (‘), debe escaparla.

Afortunadamente, a partir de la versión 8.0, PostgreSQL ofrece una característica denominada cotización en dólares que le permite elegir una string adecuada que no aparece en la función para que no tenga que escapar de ella. Una cotización de dólar es una string de caracteres entre caracteres $.

Si la función es válida, PostgreSQL creará la función y devolverá la declaración CREATE FUNCTION como se muestra arriba.

Probemos la función inc.

Cía

SELECT inc(20);

SELECT inc(inc(20));

Funcionó como se esperaba.

Creando una función usando pgAdmin:

En PostgreSQL, las funciones que tienen diferentes parámetros pueden compartir el mismo nombre. Esto se denomina sobrecarga de funciones, que es similar a la sobrecarga de funciones en C++ o Java.

Podemos crear una nueva función llamada inc que acepte dos argumentos. En la función, aumentaremos el valor del primer argumento por el segundo argumento.

Los siguientes pasos le muestran cómo crear una función desde pgAdmin.

Primero, inicie pgAdmin y conéctese a la base de datos de dvdrental .

En segundo lugar, haga clic con el botón derecho en Funciones y seleccione Crear > Función… elemento de menú. Aparecerá una nueva ventana.

Tercero, ingrese inc en el nombre de la función:

Definición i val bigint

definir

Sexto, haga clic en la pestaña SQL para ver el código generado y haga clic en el botón Guardar para crear la función:

inc Funciones Actualizar…

Aquí está la nueva función inc:

Ahora probemos la función con la siguiente consulta:

SELECT inc(10, 20);

Producción:

Publicación traducida automáticamente

Artículo escrito por RajuKumar19 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 *