Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » PostgreSQL »

Crear función en plpgsql que retorne una secuencia

Estas en el tema de Crear función en plpgsql que retorne una secuencia en el foro de PostgreSQL en Foros del Web. Hola Como estan? Estoy tratando de crear una funcion en plpgsql que consulte el valor de una secuencia y me retorne el valor incrementado, esto ...
  #1 (permalink)  
Antiguo 13/03/2007, 19:55
 
Fecha de Ingreso: noviembre-2004
Ubicación: Valle del cauca / Cali
Mensajes: 112
Antigüedad: 19 años, 5 meses
Puntos: 1
Crear función en plpgsql que retorne una secuencia

Hola Como estan?

Estoy tratando de crear una funcion en plpgsql que consulte el valor de una secuencia y me retorne el valor incrementado, esto para poder colocar esta funcion como valor por defecto para un campo de una tabla.

Algún código de ejemplo?
  #2 (permalink)  
Antiguo 14/03/2007, 08:47
 
Fecha de Ingreso: agosto-2005
Ubicación: Mérida, Venezuela
Mensajes: 732
Antigüedad: 18 años, 8 meses
Puntos: 7
Re: Crear función en plpgsql que retorne una secuencia

Hola...

No estoy seguro de haber entendido...

Con un select al campo donde está la sequencia no te es suficiente?
__________________
Gracias de todas todas
-----
Linux!
  #3 (permalink)  
Antiguo 14/03/2007, 13:25
 
Fecha de Ingreso: noviembre-2004
Ubicación: Valle del cauca / Cali
Mensajes: 112
Antigüedad: 19 años, 5 meses
Puntos: 1
Re: Crear función en plpgsql que retorne una secuencia

Lo que deseaba, era que se generara automaticamente al hacer un insert en la tabla el codigo del registrto desde una secuencia (Para no manejarlo desde php), Pero la idea despues de analizarla, no me sirve para mi proposito, muchas gracias.....
  #4 (permalink)  
Antiguo 19/03/2007, 20:38
 
Fecha de Ingreso: marzo-2007
Mensajes: 1
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: Crear función en plpgsql que retorne una secuencia

Segue um exemplo:
Create table Tipo_Negocio
(
Codigo numeric(10) not null,
Nome varchar(100) not null,
constraint pkTipo_negocio primary key (Codigo),
constraint ukTipo_negocio_Nome unique (Nome)
);

Create Sequence seqTipo_Negocio start 1;

Create or replace FUNCTION GetCodigo_Tipo_Negocio () RETURNS trigger as $trgSeqTipo_Negocio$
BEGIN
if NEW.Codigo IS NULL then
NEW.Codigo := (Select nextval('seqTipo_Negocio'));
end if;
RETURN NEW;
END;
$trgSeqTipo_Negocio$ LANGUAGE plpgsql;
  #5 (permalink)  
Antiguo 22/03/2007, 07:40
Avatar de edwinandlozano  
Fecha de Ingreso: octubre-2003
Mensajes: 272
Antigüedad: 20 años, 6 meses
Puntos: 0
Re: Crear función en plpgsql que retorne una secuencia

y por que no mejor

1.
create table prueba (
campo_uno serial not null,
campo_dos varchar
);

esto automaticamente te crea una secuencia y se inserta automaticamente, te recomiendo que leas un poco mas sobre SERIAL y SECUENCIAS
  #6 (permalink)  
Antiguo 22/03/2007, 12:24
 
Fecha de Ingreso: noviembre-2004
Ubicación: Valle del cauca / Cali
Mensajes: 112
Antigüedad: 19 años, 5 meses
Puntos: 1
Re: Crear función en plpgsql que retorne una secuencia

Aunque ya habia descartado la idea, me han ilustrado bastante sobre el tema... pregunta, al crear la secuencia, con los minimos y maximos que maneja una secuencia, ¿la debo de soportar con un campo de tipo int8, numeric,... ?
  #7 (permalink)  
Antiguo 22/03/2007, 12:57
 
Fecha de Ingreso: agosto-2005
Ubicación: Mérida, Venezuela
Mensajes: 732
Antigüedad: 18 años, 8 meses
Puntos: 7
Re: Crear función en plpgsql que retorne una secuencia

Cita:
Iniciado por calvin_naranjo Ver Mensaje
¿la debo de soportar con un campo de tipo int8, numeric,... ?
serial
__________________
Gracias de todas todas
-----
Linux!
  #8 (permalink)  
Antiguo 22/03/2007, 13:16
 
Fecha de Ingreso: agosto-2005
Ubicación: Mérida, Venezuela
Mensajes: 732
Antigüedad: 18 años, 8 meses
Puntos: 7
Re: Crear función en plpgsql que retorne una secuencia

http://www.postgresql.org/docs/8.1/static/datatype.html
__________________
Gracias de todas todas
-----
Linux!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:41.