[pgsql-jp: 36032] Re: PostgreSQLのシーケンス番号処理について

Ryo HAYAKAWA ryo @ fastriver.net
2005年 9月 22日 (木) 14:00:28 JST


早川と申します。

From: "T.Nishimura" <nisimura @ weloveya.com>
Subject: [pgsql-jp: 36031] Re: PostgreSQLのシーケンス番号処理について
Date: Thu, 22 Sep 2005 13:27:30 +0900
Message-ID: <2326B06E-4BAC-4616-8404-E597214A62A0 @ weloveya.com>

> という形で、処理を求めているので、基本的には、データが複数取れる 
> 事に重大な問題がある訳ではないのですが
> tableのno がNotNullなので、
> NEXTVAL('table_no_seq')した時に、テーブルに行が有るにも関わらず 
> データが取れない事が発生しているようなのです。

状況がわからないので推測しかできませんが、table_no_seq が MAXVALUE
に達したということは考えられないのでしょうか。
手元の PostgreSQL 8.0.3 で、MAXVALUE が 10 の testseq というシー
ケンスを作成して試したところ、あたりまえですが、以下のような
エラーとなり、値は得られませんでいた

# 以下の例の testtable は 10 行以上あります。

testdb=> create sequence testseq maxvalue 10;
CREATE SEQUENCE
testdb=> select NEXTVAL('testseq') from testtable;
ERROR:  nextval: reached maximum value of sequence "testseq" (10)
testdb=> select CURRVAL('testseq');
 currval
---------
      10
(1 row)

こういうことではないのであれば、西村さんが最初のメールでおっ
しゃっていた「ワーニング」を具体的に記すと、状況がわかって回答
も得られやすいかも知れません。
table_no_seq の create sequence 文等その他いろいろな情報も必要
になるかもしれません。

-- はやかわ



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