如果所有记录都被删除,如何在rails应用程序中重置mysql中的主键

时间:2015-09-18 02:20:09

标签: mysql ruby-on-rails

我在rails应用程序的mysql数据库中有一个表格帖子, 当我创建一个新帖子时,主键从1开始,并在创建三个新帖子时增加到2,3,4。

假设我删除了所有帖子,然后我创建了一个新帖子,那么主键应该从1开始,但它从5开始。

我不知道为什么会这样,因为我是mysql和rails的新手。

有没有办法处理这个问题,或者它是mysql数据库的工作方式。

1 个答案:

答案 0 :(得分:0)

不建议操作主键,但如果你真的想这样做,你可以在模型中使用after_destroy回调

after_destroy :truncate_table

private

def truncate_table
  Post.connection.execute("TRUNCATE #{Post.table_name};") if Post.count == 0
end