rails如何为db条目设置id

时间:2012-07-25 05:27:08

标签: ruby-on-rails database ruby-on-rails-3

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

1 个答案:

答案 0 :(得分: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