Re: alter sequence in a function

From: "Vishal Arora" <aroravishal22(at)hotmail(dot)com>
To: jcleyva(at)hotmail(dot)com
Cc: pgsql-admin(at)postgresql(dot)org
Subject: Re: alter sequence in a function
Date: 2007-07-04 03:49:19
Message-ID: BAY123-F189DA9346FD00FA71B8FE2A9030@phx.gbl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin

>From: Julio Leyva <jcleyva(at)hotmail(dot)com>
>To: <pgsql-admin(at)postgresql(dot)org>
>Subject: [ADMIN] alter sequence in a function
>Date: Tue, 3 Jul 2007 22:48:30 +0000
>
>
>Hi allI'm trying to create a function that alters a sequenceThis what I'm
>doingcreate or replace function updatesafe() returns integer AS
>$$DECLAREmaxseq integer;alterseq varchar(256);thumb integer;newvalue
>integer;BEGINnewvalue := 10010; maxseq := (select max(safeoperationid)
>from safeopencloseoperation); if (maxseq < 500) then return 3000;
>else execute 'ALTER sequence safeopencloseoperation_id_seq restart with
>' || 'newvalue ' ;

Remove the single quotes (' ') from newvalue in the execute, it is taking
newvalue as a string instead of treating it as a variable.

return 10000; END IF;END;$$ language plpgsqlIt compiles ok but when I call
the functionit gives me this error ALTER sequence
safeopencloseoperation_id_seq restart with newvalueCONTEXT: PL/pgSQL
function "updatesafe" line 17 at execute statementLINE 1: ...equence
safeopencloseoperation_id_seq restart with newvalueHowever when I change the
alter sequence for thisALTER sequence safeopencloseoperation_id_seq restart
with 10000 ;The function is ok,It means that we can't use such a utility
inside a function? I mean replacing a value for a variable?Thanks for any
suggestion

_________________________________________________________________
http://newlivehotmail.com

In response to

Browse pgsql-admin by date

  From Date Subject
Next Message ngaleyev 2007-07-04 06:38:23 Re: hot restart of posgtresql
Previous Message Tom Lane 2007-07-04 02:51:45 Re: hot restart of posgtresql