が、私はpostgresの中に、以下の表を持って挿入します。ただし、この場合、テーブルの自動インクリメントポインタは更新されません。したがって、私はエラーを取得する第三のインサートに:Postgresの自動インクリメントは
ERROR: duplicate key value violates unique constraint "test_pkey"
DETAIL: Key (id)=(1) already exists.
私は、MyISAMテーブルとINNODBエンジンの両方にMySQLでこの問題に直面したことはありません。明示的かどうかにかかわらず、mysqlは最大行IDに基づいて常にautoincrementポインタを更新します。
ポストグルでこの問題の回避策を教えてください。私はテーブルの中のいくつかのIDのためのより厳密なコントロールが必要なので、それが必要です。
更新日: 固定値のIDが必要な値がいくつかあるので、必要です。他の新しいエントリについては、私は新しいものを作成する気にしない。
私はそれは私が明示的にIDを挿入していたときに、手動でmax(id) + 1
へnextval
ポインタをインクリメントすることにより可能かもしれないと思います。しかし、私はそれをどうやって行うのか分かりません。
! – jerrymouse
奇妙な動作。私はMySQLからも来ています。ありがとうございました! –
私は同じ問題を抱え、あなたとhttp://www.ruby-forum.com/topic/64428#72333(あなたは基本的に同じことを言う)と私の問題を解決しました。ありがとう。 – marsol0x