[pgsql-jp: 35103] Re: シーケンス値の設定

Sato_Kenichi satok-point @ mf.point.ne.jp
2005年 3月 24日 (木) 01:52:13 JST


さとうと申します。

>以前、select setval('hoge_id_seq', max(id)) from hoge;
>または、select setval('hoge_id_seq', (select max(id)+1 from hoge));
>のような書式が使えたような気がしたのですが、
>PostgreSQL 8.0.1では使えなくなってしまったのでしょうか???

手元の PostgreSQL 8.0.1 で試してみましたが、ちゃんと使えるようです。
そのSQLを実行すると、どんなエラーメッセージが出るのでしょうか?

---
佐藤 研一
E-Mail: satok-point @ mf.point.ne.jp

▼▼以下実行ログ▼▼
template1=# select version();
                            version                            
---------------------------------------------------------------
 PostgreSQL 8.0.1 on i586-pc-linux-gnu, compiled by GCC 2.95.3
(1 row)

template1=# create table test (id int4);
CREATE TABLE
template1=# create sequence hoge_id_seq;
CREATE SEQUENCE
template1=# insert into test values(1);
INSERT 2736621 1
template1=# insert into test values(100);
INSERT 2736622 1
template1=# commit;
COMMIT
template1=# select setval('hoge_id_seq', max(id)) from test;
 setval 
--------
    100
(1 row)

template1=# select setval('hoge_id_seq', (select max(id)+1 from test));
 setval 
--------
    101
(1 row)

template1=# select nextval('hoge_id_seq');
 nextval 
---------
     102
(1 row)

template1=#




pgsql-jp メーリングリストの案内