0

如果您创建 5User条记录,则将它们全部销毁。创建的数据库中的下一个User条目将有一个id6。rails 怎么知道给这个新行一个idof6和 not 1?我遇到了这个问题,因为我试图“猜测”User记录的下一个 id 是什么,但在上述情况下遇到了麻烦。我目前正在使用 postgresql,但我不相信这个功能会依赖于数据库?非常感谢!

4

1 回答 1

3

这取决于数据库。插入时,大多数数据库都会返回插入行的 id。在 PostgreSQL 中,您拥有所谓的“序列”,它保留当前/下一个 id 编号(不确定是哪个)。其他数据库可能会有所不同。

请参阅:https ://github.com/rails/rails/blob/master/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb#L726

这是它找到当前序列的地方:https ://github.com/rails/rails/blob/master/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb#L1513

于 2012-07-25T05:29:30.250 回答