2016-09-26 17 views
0

我需要生成一個唯一的遞增數字,它將成爲更復雜的發票號碼的一部分。我想保持應用程序中的增量邏輯。如何從特定數字開始編號列?

我必須恢復當前正在其他系統上進行編號。

我打算做Model.maximum(:custom_number).next

但我怎麼能開始從給定數量的custom_number列?

回答

0

如果我理解你的問題,你只需要重置表(模型)的主鍵索引到你想要的數字。

如果你正在使用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 
+0

Ť小費的小費。但是我沒有在這裏使用id列,而是一個'invoice_number'列。對不起,如果不明確。 – DoeJ

+0

那麼,對於SQL數據庫,每個表只能有一個自動增量列,所以也許您可以在Rails模型上執行** before_create **,以便您可以檢查上次存儲的記錄並對發票列執行+1操作 查看我編輯的評論 – Makarov

+0

@DoeJ除了您的invoice_number列,您還有一個ID列嗎?沒有什麼可以阻止您使用invoice_number代替ID,如果這樣可以讓您和您的用戶更清楚。 – MarsAtomic

相關問題