On Saturday 11. June 2011 17.23.40 Andreas Kretschmer wrote: > Leif Biberg Kristensen <l...@solumslekt.org> wrote: > > Can anybody tell me why this doesn't work? > > > > pgslekt=> CREATE SEQUENCE sources_source_id_seq START WITH (SELECT > > MAX(source_id) FROM sources); > > ERROR: syntax error at or near "(" > > LINE 1: CREATE SEQUENCE sources_source_id_seq START WITH (SELECT MAX... > > > > ^ > > > > pgslekt=> > > > > regards, Leif > > You can't do that, but you can do this: > > test=# select * from foo; > i > ---- > 98 > 99 > (2 rows) > > Time: 0,146 ms > test=*# \ds seq_foo; > No matching relations found. > test=*# do $$ declare m int; begin select into m max(i) from foo; execute > 'create sequence seq_foo start with ' || m; end; $$; DO > Time: 1,115 ms > test=*# \ds seq_foo; > List of relations > Schema | Name | Type | Owner > --------+---------+----------+------------ > public | seq_foo | sequence | kretschmer > (1 row) > > test=*# select * from seq_foo; > sequence_name | last_value | start_value | increment_by | max_value > | min_value | cache_value | log_cnt | is_cycled | is_called > ---------------+------------+-------------+--------------+---------------- > -----+-----------+-------------+---------+-----------+----------- seq_foo > | 99 | 99 | 1 | 9223372036854775807 | > 1 | 1 | 1 | f | f (1 row) > > > > I'm using 9.1Beta, but it works since 9.0, see: > http://www.depesz.com/index.php/2009/11/01/waiting-for-8-5-do/#more-1535
Yes it works like a charm with 9.x, but it's not backwards compatible. That looks like a problem waiting to happen. But of course I can create a one- shot function and drop it afterwards. regards, Leif -- Sent via pgsql-sql mailing list (pgsql-sql@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-sql