Re: Subselects not allowed? - Mailing list pgsql-sql

From Andreas Kretschmer
Subject Re: Subselects not allowed?
Date
Msg-id 20110611152340.GA9062@tux
Whole thread Raw
In response to Subselects not allowed?  (Leif Biberg Kristensen <leif@solumslekt.org>)
Responses Re: Subselects not allowed?  (Leif Biberg Kristensen <leif@solumslekt.org>)
List pgsql-sql
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
----9899
(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 relationsSchema |  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




Andreas
-- 
Really, I'm not out to destroy Microsoft. That will just be a completely
unintentional side effect.                              (Linus Torvalds)
"If I was god, I would recompile penguin with --enable-fly."   (unknown)
Kaufbach, Saxony, Germany, Europe.              N 51.05082°, E 13.56889°


pgsql-sql by date:

Previous
From: Tom Lane
Date:
Subject: Re: Subselects not allowed?
Next
From: Leif Biberg Kristensen
Date:
Subject: Re: Subselects not allowed?