たとえば5つUser
のレコードを作成する場合は、それらをすべて破棄します。作成されたデータベースの次のUser
エントリのid
は6になります。railsは、この新しい行にのを与えるのではなく、与えることをどのように知ってid
い6
ます1
か?レコードの次のIDが何であるかを「推測」しようとしていたため、この問題がUser
発生しましたが、上記のシナリオで問題が発生しました。私は現在postgresqlを使用していますが、この機能がデータベースに依存するとは思わないのですか?本当にありがとう!
質問する
31 次
1 に答える
3
これはデータベースに依存します。挿入すると、ほとんどのデータベースは挿入された行のIDを返します。PostgreSQLには、現在/次のID番号を保持する「シーケンス」と呼ばれるものがあります(どちらかはわかりません)。他のデータベースは異なる場合があります。
ここで現在のシーケンスが見つかります:https ://github.com/rails/rails/blob/master/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb#L1513
于 2012-07-25T05:29:30.250 に答える