2012-07-25 23 views
0

如果您創建了5 User記錄,則將其全部銷燬。創建的數據庫中的下一個User條目將具有id/6。軌道如何知道給這個新行id6而不是1?我遇到了這個問題,因爲我試圖「猜測」User記錄的下一個ID是什麼,但是遇到了上述情況。我目前使用postgresql,但我不相信這個功能會依賴於數據庫?謝謝一堆!rails如何爲db條目設置ID

+0

不要試圖猜測,你的猜測將是錯誤的早晚。 – 2012-07-25 05:39:01

+0

@ muistooshort kk謝謝 – Steve 2012-07-25 05:43:13

回答

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

+0

感謝pedro,有什麼方法可以訪問這個序列來「猜測」下一個id是什麼? – Steve 2012-07-25 05:31:51

+0

我已經更新了這個問題,請看看。 :) – 2012-07-25 05:33:45

+0

我會非常感謝你 – Steve 2012-07-25 05:34:43