例如,最新的行ID为100.我插入一个新行然后将其删除然后再次插入。行id将是102.如何在插入新行之前获得该数字102。
注意:Model.maximum(:id).next
只给我101。
答案 0 :(得分:1)
您可以查询SQLITE_SEQUENCE
,其中存储了所有自动增量。
首先,创建您的查询:
sql = "SELECT * FROM SQLITE_SEQUENCE"
然后执行您的查询以获取下一个要设置的ID:
next_id = Hash[ActiveRecord::Base.connection.select_rows(sql)]["table"] + 1
其中table
是您想要自动递增的表的名称(通常是Model
的复数形式。)