PostgreSQL 8.2 から INSERT 時に RETURNING なるおまじないを使うことで INSERT されたものの結果を返してくれるなんてことができてたのかー
つまり、serial の値が何になったかがそれでサクっと分かる。
Databaseの最近のブログ記事
hoge=> select currval('honya');
ERROR: currval of sequence "honya" is not yet defined in this session
nextval 使う前に currval 使うとこうなっちゃう。
ので、以下のようにすれば回避でけた。
hoge=> select last_value from honya;
last_value
------------
15
(1 row)
これでもキャッシュがらみで注意が必要らしい。
修復すべきテーブルがあるかどうか調べる。
$ myisamchk *.MYI
修復すべきテーブルがあれば mysqld を停止して修復する。
$ myisamchk -r 修復すべきテーブル.MYI
