rails如何为数据库条目设置id



如果创建了5条User记录,则将其全部销毁。数据库中创建的下一个User条目的id为6。rails如何知道给这一新行一个6id而不是1?我遇到这个问题是因为我试图"猜测"User记录的下一个id是什么,但在上面的场景中遇到了麻烦。我目前正在使用postgresql,但我不认为这个功能会依赖于数据库?谢谢大家!

这是依赖于数据库的。插入时,大多数数据库都会返回插入行的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

相关内容

  • 没有找到相关文章

最新更新