如何获得即将到来的行id - rails

时间:2017-04-30 01:24:58

标签: ruby-on-rails sqlite

例如,最新的行ID为100.我插入一个新行然后将其删除然后再次插入。行id将是102.如何在插入新行之前获得该数字102。

注意:Model.maximum(:id).next只给我101。

1 个答案:

答案 0 :(得分:1)

您可以查询SQLITE_SEQUENCE,其中存储了所有自动增量。

首先,创建您的查询:

sql = "SELECT * FROM SQLITE_SEQUENCE"

然后执行您的查询以获取下一个要设置的ID:

next_id = Hash[ActiveRecord::Base.connection.select_rows(sql)]["table"] + 1

其中table是您想要自动递增的表的名称(通常是Model的复数形式。)