Skip site navigation (1) Skip section navigation (2)

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 (view raw or flat)
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

pgsql-es-ayuda by date

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

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group