[seasar-php:137] S2DAOのS2Dao_PostgreSQL::nextvalについて

ISHITOYA Kentaro [E-MAIL ADDRESS DELETED]
2007年 5月 21日 (月) 17:31:53 JST


石戸谷です。

掲題の件ですが、S2Dao_PostgreSQL::nextvalは、
public function getSequenceNextValString($sequenceName) {
    return 'SELECT nextval (' . $sequenceName . ')';
}

と定義されていますが、これだと、
SQLException occured, because SQLSTATE[42703]: Undefined column: 7
ERROR: column "persons_id_seq" does not exist at character 17'

といわれてしまいます。
SELECT nextval('persons_id_seq');
のように、引用符で囲わないといけないようです。
今の環境は、PostgreSQL8.2ですが、一応調べてみたところ、7.1、8.1ともに、
引用符が必要でした。
http://osb.sra.co.jp/PostgreSQL/Manual/PostgreSQL-7.1-ja/sql-createsequence.html
http://www.postgresql.org/docs/8.1/static/functions-sequence.html

なので、正しくは
public function getSequenceNextValString($sequenceName) {
    return 'SELECT nextval (\'' . $sequenceName . '\')';
}
です。

対応をよろしくお願いいたします。
失礼いたします。


seasar-php メーリングリストの案内