Re: updating a sequence - Mailing list pgsql-sql

From Scott Marlowe
Subject Re: updating a sequence
Date
Msg-id CAOR=d=1OAyExiv=T2txJX4HTgDLGYS4qE6puBbt_EOqO5Di2Uw@mail.gmail.com
Whole thread Raw
In response to Re: updating a sequence  (Scott Marlowe <scott.marlowe@gmail.com>)
Responses Re: updating a sequence  (Sam Gendler <sgendler@ideasculptor.com>)
List pgsql-sql
On Tue, Nov 15, 2011 at 8:46 PM, Scott Marlowe <scott.marlowe@gmail.com> wrote:
> On Tue, Nov 15, 2011 at 5:33 PM, Samuel Gendler
> <sgendler@ideasculptor.com> wrote:
>> On Tue, Nov 15, 2011 at 4:28 PM, John Fabiani <johnf@jfcomputer.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@jfcomputer.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 with 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.

Was wrong, it definitely works in 8.3.  But only with the parens.


pgsql-sql by date:

Previous
From: Scott Marlowe
Date:
Subject: Re: updating a sequence
Next
From: Sam Gendler
Date:
Subject: Re: updating a sequence