gpt4 book ai didi

mysql - 在 Ruby on Rails 中,如何在先前被销毁时创建 ID 为 3 的记录?

转载 作者:可可西里 更新时间:2023-11-01 07:47:53 25 4
gpt4 key购买 nike

我正在尝试一个实验性 Rails 项目并销毁了记录 3 (ID == 3),所以现在有记录 1、2、4 和 5。

有没有办法用从 1 到 5 的记录 ID 重新填充此表? (这是使用mysql)

我可以用

if Item.exists?(i)
item = Item.find(i)
else
item = Item.new
end

# set some values
item.name = "haha" + i
item.save

Item.new() 用于创建具有新自动增量记录 ID(在本例中为 6)的新记录,但是之前删除的记录呢?

最佳答案

您可以使用以下方式设置 ID:

item = Item.new
item.id = i

你不能将 :id => i 传递给 Item.new 因为 id 是一个特殊的属性,并且会自动受到质量保护-作业。

你也可以告诉 MySQL 重新从 1 开始计数,它会自动补上所有缺失的 ID:

Item.connection.execute("ALTER TABLE items AUTO_INCREMENT = 1")

(实际上,MySQL 文档说这会将其重置为 MAX(id) + 1,因此在这种情况下它不会最终使用 3。)

关于mysql - 在 Ruby on Rails 中,如何在先前被销毁时创建 ID 为 3 的记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3567971/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com