我正在尝试一个实验性的Rails项目并销毁记录3(ID == 3),所以现在有记录1,2,4和5.有没有办法重新填充此表,记录ID从1到5? (这是使用mysql)我可以用if Item.exists?(i)item = Item.find(i)elseitem = Item.newend#...
我正在尝试一个实验性的Rails项目并销毁记录3(ID == 3),所以现在有记录1,2,4和5.
有没有办法重新填充此表,记录ID从1到5? (这是使用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 =>我到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的记录?
猜你喜欢
- 汇编语言程序设计之根据输入改变屏幕颜色的代码 2023-07-06
- Ruby 迭代器知识汇总 2023-07-23
- R语言-如何切换科学计数法和更换小数点位数 2022-11-23
- R语言关于二项分布知识点总结 2022-11-30
- Ruby的字符串与数组求最大值的相关问题讨论 2023-07-22
- Go Web开发进阶实战(gin框架) 2023-09-06
- Ruby on Rails在Ping ++ 平台实现支付 2023-07-22
- R语言绘图数据可视化pie chart饼图 2022-12-10
- Golang http.Client设置超时 2023-09-05
- Swift超详细讲解指针 2023-07-08