0
我需要生成一個唯一的遞增數字,它將成爲更復雜的發票號碼的一部分。我想保持應用程序中的增量邏輯。如何從特定數字開始編號列?
我必須恢復當前正在其他系統上進行編號。
我打算做Model.maximum(:custom_number).next
但我怎麼能開始從給定數量的custom_number
列?
我需要生成一個唯一的遞增數字,它將成爲更復雜的發票號碼的一部分。我想保持應用程序中的增量邏輯。如何從特定數字開始編號列?
我必須恢復當前正在其他系統上進行編號。
我打算做Model.maximum(:custom_number).next
但我怎麼能開始從給定數量的custom_number
列?
如果我理解你的問題,你只需要重置表(模型)的主鍵索引到你想要的數字。
如果你正在使用MySQL或PostgreSQL則:
ALTER SEQUENCE tablename_id_seq RESTART WITH 1453;
那麼接下來的記錄將在這種情況下,對指數的1453
要訪問數據庫控制檯只是你的控制檯上運行軌道分貝
EDIT
before_filter :check_invoice_number
def check_invoice_number
self.invoice_column = Model.last.invoice_column + 1
end
Ť小費的小費。但是我沒有在這裏使用id列,而是一個'invoice_number'列。對不起,如果不明確。 – DoeJ
那麼,對於SQL數據庫,每個表只能有一個自動增量列,所以也許您可以在Rails模型上執行** before_create **,以便您可以檢查上次存儲的記錄並對發票列執行+1操作 查看我編輯的評論 – Makarov
@DoeJ除了您的invoice_number列,您還有一個ID列嗎?沒有什麼可以阻止您使用invoice_number代替ID,如果這樣可以讓您和您的用戶更清楚。 – MarsAtomic