[pgsql-jp: 30263] SQLのMAX関数について

Masato Tanaka pgsql @ e-linez.com
2003年 6月 29日 (日) 15:41:13 JST


こんにちは。田中と申します。

早速質問させてください。

以下のようなテーブルがあったとします。

[table]
id | value
-----------
1  | abc
2  | def

新規レコードの登録時に、(idのMAX値+1)を割り当てを1文のSQLで
行いたいと思い以下のようなSQLを発行しました。

INSERT INTO table VALUES(SELECT MAX(id)+1 FROM talbe);
UPDATE table SET value='efg' WHERE id=(SELECT MAX(id) FROM table);

これで、うまくいったかと思ったのですが、レコードがないときに
MAX(id)の値が0にならずNULL?になるためエラーにってしまいます。

説明不足でしたらすみません。
なにか良い方法をご存知でしたらご教授いただけると嬉しいです。

田中正人





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