2013-02-12 76 views
0

我期待在我的表orders中創建一個名爲id_visual的字段,該字段從1開始,並從那裏自動遞增。我可以在我的模型中創建一個方法來做到這一點,但我認爲必須有更好的更安全的方法。有任何想法嗎?Rails&Postgresql創建一個字段,自動遞增1

回答

0

從我能告訴,你想要一個基於主要ID的輔助ID?身份密鑰只能是基於表的,不能依賴於另一個密鑰。您必須在代碼中執行此操作,然後將其保存到before_create上的新字段。最簡單的方法是爲每個您想要編號的訂單,根據主鍵是否小於或等於您正在使用的訂單計算所有訂單的計數。它是一個簡單的查詢計算。

+0

一個查詢,是受競爭情況和你的計數就會失敗作爲行被刪除。 – 2013-02-12 04:24:22

+0

其實我最終這樣做了,並在'accounts'表中存儲了'orders_count'字段,所以刪除訂單並不重要。這一部分非常重要。 – bcackerman 2013-02-19 05:09:20

0

這是您的數據庫應該在某個級別提供的事情,無論是在事務中還是其他鎖定。

看看這個問題的一些方法,以獲得Postgres的配置爲自動增量列:

PostgreSQL Autoincrement