如何从特定数字开始编号列?

问题描述:

我需要生成一个唯一的递增数字,它将成为更复杂的发票号码的一部分。我想保持应用程序中的增量逻辑。如何从特定数字开始编号列?

我必须恢复当前正在其他系统上进行编号。

我打算做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 
+0

Ť小费的小费。但是我没有在这里使用id列,而是一个'invoice_number'列。对不起,如果不明确。 – DoeJ

+0

那么,对于SQL数据库,每个表只能有一个自动增量列,所以也许您可以在Rails模型上执行** before_create **,以便您可以检查上次存储的记录并对发票列执行+1操作 查看我编辑的评论 – Makarov

+0

@DoeJ除了您的invoice_number列,您还有一个ID列吗?没有什么可以阻止您使用invoice_number代替ID,如果这样可以让您和您的用户更清楚。 – MarsAtomic