Re: updating a sequence

From: Scott Marlowe <scott(dot)marlowe(at)gmail(dot)com>
To: Samuel Gendler <sgendler(at)ideasculptor(dot)com>
Cc: John Fabiani <johnf(at)jfcomputer(dot)com>, pgsql-sql(at)postgresql(dot)org, Richard Broersma <richard(dot)broersma(at)gmail(dot)com>
Subject: Re: updating a sequence
Date: 2011-11-16 03:46:19
Message-ID: CAOR=d=3fahvFCn80mQLwK4Pnru7u1DiV5ZTD3oyxe7S+sSpXjA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

On Tue, Nov 15, 2011 at 5:33 PM, Samuel Gendler
<sgendler(at)ideasculptor(dot)com> wrote:
> On Tue, Nov 15, 2011 at 4:28 PM, John Fabiani <johnf(at)jfcomputer(dot)com> wrote:
>>
>> On Tuesday, November 15, 2011 08:33:54 am Richard Broersma wrote:
>> > On Tue, Nov 15, 2011 at 8:06 AM, John Fabiani <johnf(at)jfcomputer(dot)com>
>> > wrote:
>> > > alter sequence somename restart with (select max(pk) from sometable).
>> > >
>> > > I need this for automating an ETL (using pentaho).
>> >
>> >
>> > http://www.postgresql.org/docs/9.1/interactive/functions-sequence.html#FUNC
>> > TIONS-SEQUENCE-TABLE
>>
>>
>> I don't see how that helps answer my problem.  I know how to update a
>> sequence.  I want to pass a value for the restart vaue that depends on a
>> query
>> - all in one statement.  I would think it is a common problem i.e.
>> migrating
>> data.
>>
>
> use a subquery to set the value -
> select setval('foo', select max(some_id) from some_table)
> It's all right there in the docs that you were pointed to. We try to
> encourage people to be somewhat self sufficient around here.

You need to wrap a subselect in ():

select setval('foo', (select max(some_id) from some_table));

That works in 9.1.1. No clue about previous versions off the top of
my head, but I seem to recall it doesn't work in 8.3 and prior
versions.

In response to

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Scott Marlowe 2011-11-16 03:49:57 Re: updating a sequence
Previous Message Samuel Gendler 2011-11-16 00:33:53 Re: updating a sequence