2014年02月07日11:28 カテゴリpostgresql Postgresqlのシーケンスを再設定する postgresqlのシーケンス値は、mysqlと違って指定カラムの最大値を取ってくれるのではなく、別に保存してある「最大値」を設定するようになっている。 SQLでinsertして行く分には基本問題ないけれど、CSVなどからインポートした場合、保存した値とずれてしまい、SQLからのinsert時に "duplicate key value violates unique constraint" などと怒られてしまうことがある。 これ再設定するには select setval('hogehoge_id_seq',(select max(id) from hogehoge)); みたいな感じにする。 後半のselect分はテーブルのidの最大値を取る、と言うことで、この部分を直接数字を
![Postgresqlのシーケンスを再設定する:地方で活動するweb制作者の日々を綴るblog](https://cdn-ak-scissors.b.st-hatena.com/image/square/1ee644d03b70de1ac82f99d463fd4262b5736fe7/height=288;version=1;width=512/http%3A%2F%2Fimage.profile.livedoor.jp%2Ficon%2Floopus_60.gif)