我正在尝试一个实验性的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的记录?
基础教程推荐
猜你喜欢
- R语言多元线性回归实例详解 2022-12-15
- R语言histogram(直方图)的具体使用 2022-10-28
- golang 自然语言处理工具(gohanlp) 2023-09-05
- Go语言实现一个Http Server框架(二) Server的抽象 2023-07-25
- Ruby on Rails在Ping ++ 平台实现支付 2023-07-22
- R语言使用gganimate创建可视化动图 2022-12-10
- R语言学习代码格式一键美化 2022-12-05
- go语言的魔幻旅程14-反射 2023-09-05
- ruby-on-rails – Nginx支持的Rails应用程序中缺少Content-Length Header 2023-09-20
- R语言关联规则深入详解 2022-11-08
