Re: Subselects not allowed?
От | Leif Biberg Kristensen |
---|---|
Тема | Re: Subselects not allowed? |
Дата | |
Msg-id | 201106111739.04845.leif@solumslekt.org обсуждение исходный текст |
Ответ на | Re: Subselects not allowed? (Andreas Kretschmer <akretschmer@spamfence.net>) |
Список | pgsql-sql |
On Saturday 11. June 2011 17.23.40 Andreas Kretschmer wrote: > Leif Biberg Kristensen <leif@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
В списке pgsql-sql по дате отправления: