Aprende Java Aprende Php Aprende C++ Aprende HTML 5 Aprende JavaScript Aprende JSON Aprende MySQL Aprende SQLServer Aprende Visual Basic 6 Aprende PostgreSQL Aprende SQLite Aprende Redis Aprende Kotlin Aprende XML Aprende Linux VSC Aprende Wordpress Aprende Laravel Aprende VueJS Aprende JQuery Aprende Bootstrap Aprende Netbeans Aprende Android
Sigueme en Facebook Sigueme en Twitter Sigueme en Instagram Sigueme en Youtube Sigueme en TikTok Sigueme en Whatsapp
Home / Base de Datos / PostgreSQL / Funciones en PostgreSQL y pgAdmin

Funciones en PostgreSQL y pgAdmin

Por jc mouse lunes, julio 16, 2012

Los procedimientos almacenados de MySQL , en postgreSQL se llaman funciones, pueden crearse desde consola, pero es mucho mas fácil utilizar pgAdmin.

Para este tutorial, se emplearan dos tablas que consisten en una tabla llamada PERSONA  y otra tabla, llamada TORNEO, el código para su creación esta más abajo, la tabla Torneo ademas hace uso de un SEQUENCE para generar un ID autoincrementable, puedes ver un tutorial AQUI.

CREATE TABLE persona
(
  "CI" character(7) NOT NULL,
  "Nombre" character(32) NOT NULL,
  edad integer NOT NULL DEFAULT 18,
  CONSTRAINT "CI" PRIMARY KEY ("CI")
)

CREATE SEQUENCE id_secuencia
  INCREMENT 1
  MINVALUE 1
  MAXVALUE 9223372036854775807
  START 18
  CACHE 1;
ALTER TABLE id_secuencia OWNER TO postgres;

CREATE TABLE torneo
(
  "ID" integer NOT NULL DEFAULT nextval('id_secuencia'::regclass),
  ci_participante character(7) NOT NULL,
  categoria character(16) NOT NULL,
  CONSTRAINT "ID" PRIMARY KEY ("ID")
)

El ejemplo que crearemos es muy simple, teniendo algunos registros en la tabla PERSONA, crearemos una función que nos permita registrar participantes en la tabla TORNEO, con la restricción de que si la edad es mayor o igual de 18 años, se registren en la categoría «Mayores», caso contrario si la edad es menor de 18 años, corresponden a la categoría «Menores». Un ejemplo muy simple, pero que nos sirve para ver en su mayoría las instrucción más utilizadas en las funciones, parámetros, variables, consultas, instrucciones condicionales, etc.

la función completa la tienes en el siguiente código:

declare
-- se declaran las variables a utilizar
ci character(7); -- ID de tabla persona = CEDULA DE IDENTIDAD
edad integer; -- la edad del participante
--la funcion va entre BEGIN y END
begin

ci = $1 ; -- ci toma valor del parametro de entrada
-- el valor de edad, sera calculado mediante una consulta a la tabla persona
edad = ( select p."edad" from "persona" as p where p."CI" = ci );
-- de acuerdo al valor de EDAD registramos al participante en la categoria
-- >=18 Mayores <18 Menores sino, NO SE REGISTRA NADA
if( edad >= 18 ) then
 insert into torneo( ci_participante, categoria ) values ( ci, 'Mayores' );
 return 'Participante registrado en la categoria MAYORES';
elsif ( edad <18 ) then
 insert into torneo( ci_participante, categoria ) values ( ci, 'Menores' );
 return 'Participante registrado en la categoria MENORES';
else
 return 'Error: No se pudo completar el registro';
end if;

end;

En el siguiente video, veremos paso a paso su construcción y ejecución

🙂 FIN

Tags

Artículos similares

Minimizar aplicación al SystemTray/Bandeja del Sistema

El SystemTray/Bandeja del Sistema o como también se le llama «Área de Notificación» es la sección de la barra de tareas[...]

Efecto de explosión al abrir un JPanel

En este tutorial crearemos un interesante efecto de explosión al momento de abrir un JPanel, este efecto puede extenders[...]

Personalizar iconos de un JTree

JTree cuenta con métodos que nos permiten cambiar los iconos de cada nodo según su estado, sin embargo a veces esto no e[...]

Gráficos iReport con parámetros tipo Date

Matando dos pájaros de un solo tiro :), doy respuesta a un par de preguntas que están relacionadas, en este post veremos[...]

Informes Access con JasperReport/iReport

En este post vemos la forma de conectar una base de datos Access con JasperReport para diseñar y ejecutar reportes. Para[...]

Conexion Visual Basic a Firebird

En este tutorial nos conectaremos a una base de datos de Firebird utilizando el lenguaje de Visual Basic, el proyecto se[...]