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

Re: Crear Funciones en PG

From: Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>
To: Aland Laines <aland(dot)laines(at)gmail(dot)com>
Cc: Ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Crear Funciones en PG
Date: 2012-08-30 02:55:58
Message-ID: 1346294912-sup-2984@alvh.no-ip.org (view raw or flat)
Thread:
Lists: pgsql-es-ayuda
Excerpts from Aland Laines's message of lun ago 06 18:37:46 -0400 2012:

> Estoy viendo lo de funciones y quise crear esta:
> 
> ----------------------------
> CREATE OR REPLACE FUNCTION adecuar_publicacion() RETURNS boolean as $BODY$
> DECLARE
> maximo integer;
> BEGIN
> maximo =(select max("IdeReg") from "Publicacion")::integer;
> if(maximo is null) then
> maximo=0;
> end if;
> maximo=maximo+1;
> DROP SEQUENCE "Publicacion_IdeReg_seq";
> CREATE SEQUENCE "Publicacion_IdeReg_seq"
>   INCREMENT 1
>   MINVALUE 1
>   MAXVALUE 9223372036854775807
> *  START maximo*
>   CACHE 1;

En vez de hacer DROP SEQUENCE seguido por CREATE SEQUENCE, es mucho más
sensato hacer ALTER SEQUENCE (o llamar la función setval()) para cambiar
el próximo valor de la secuencia.  Mira
http://stackoverflow.com/a/5943183

(La función que publiqué ahí es muy útil si una secuencia está siendo
usada en más de una tabla, que fue un problema que tuvimos con un
cliente).

-- 
Álvaro Herrera                http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services


In response to

pgsql-es-ayuda by date

Next:From: Hellmuth VargasDate: 2012-08-30 05:53:01
Subject: Re: [pgsql-es-ayuda] consulta para ver las tablas, i?==?ISO-8859-1?Q?ndices,etc que están involucrados en un lock
Previous:From: Guillermo VillanuevaDate: 2012-08-30 02:39:29
Subject: Re: Crear Funciones en PG

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