Re: [pgsql-ayuda] sALudos

From: Gunnar Wolf <gwolf(at)campus(dot)iztacala(dot)unam(dot)mx>
To: pgsql-ayuda(at)tlali(dot)iztacala(dot)unam(dot)mx
Subject: Re: [pgsql-ayuda] sALudos
Date: 2000-08-24 19:06:23
Message-ID: Pine.BSO.4.21.0008241359260.25474-100000@campus.iztacala.unam.mx
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

> Hola:
>
> Soy un poco nuevo en el ambito de las bases de datos. Veo que en
> otros manejadores hay los llamados "store procedures" y quiero saber
> si los hay en postgres. Estoy viendo la SPI(Server Programming
> interface) para implementar funciones(creo que asi se les debe
> llamar). Segun tengo entendido los Store procedures se programan
> dentro de la base de datos. La SPI tengo claro sus aplicaciones, pero
> en los Store no es asi. El Store Procedure puede ser algo similar a
> una funcion de la SPI?. Gracias.

Si los store procedures son simplemente funciones declaradas junto con la
base de datos, si, postgres si lo soporta. Utilice hace algun tiempo lo
siguiente, aun con postgres 6.5.3:

En una aplicacion de elecciones, tenia las funciones:

CREATE FUNCTION "formula_elec" (int2) RETURNS int2 AS
'SELECT id_elec FROM formula WHERE id_formula = $1'
LANGUAGE 'SQL';

CREATE FUNCTION "casilla_elec" (int2) RETURNS int2 AS
'SELECT id_elec FROM casilla WHERE id_casilla = $1 '
LANGUAGE 'SQL';

Y para utilizarla, al crear mis tablas, lo hice asi:

CREATE TABLE "votos" (
"id_casilla" int2 NOT NULL,
"id_formula" int2 NOT NULL,
"num_votos" int2 NOT NULL
CONSTRAINT cont1 CHECK (casilla_elec(id_casilla) = formula_elec(id_formula))
);

Esto obligaba a que cada insercion en votos revisara que el id_elec
relacionado con id_casilla y con id_formula fueran iguales.

Como nota, seguro hay alguna otra manera de solucionarlo, pero yo tampoco
conozco muy bien SQL. Para crear estas funciones es necesario que ya
existan las tablas formula y casilla, asi que hay que crearlas antes de
declarar las funciones. Claro, votos tiene que ser creada despues de las
funciones. Me gusta mantener las cosas ordenadas, por lo que creaba tablas
temporales, creaba las funciones, destruia esas tablas y creaba las tablas
reales.

Saludos!

-------------------------------------------------------------------
Gunnar Wolf gwolf(at)campus(dot)iztacala(dot)unam(dot)mx
Universidad Nacional Aut�oma de M�ico, Campus Iztacala
Jefatura de Secci� de Desarrollo y Admon. de Sistemas en Red
Area de Seguridad en Computo - DCI - DGSCA - UNAM
-------------------------------------------------------------------
Beginner thinks 1Kb == 1000 bytes. Master knows 1Km == 1024m

--------- Pie de mensaje -------------------------------------------
Archivo historico: http://tlali.iztacala.unam.mx/maillist/pgsql-ayuda
Cancelar inscripcion:
mail to: majordomo(at)tlali(dot)iztacala(dot)unam(dot)mx
text : unsubscribe pgsql-ayuda

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Anderson Gutierrez Pizarro 2000-08-24 20:59:23 RE: [pgsql-ayuda] Proyecto postgres
Previous Message cavall_fort 2000-08-24 18:16:06 [pgsql-ayuda] RE: sALudos