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の最大値を取る、と言うことで、この部分を直接数字を