我正在尝试一个实验性的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的记录?


基础教程推荐
猜你喜欢
- 详解swift中xcworkspace多项目管理 2023-07-05
- ruby – 如何使用Nginx,Passenger,Sinatra创建多个位置 2023-09-20
- 解决R语言中install_github中无法安装遇到的问题 2022-11-26
- R语言入门使用RStudio制作包含Rcpp代码的R包 2022-12-05
- 深入探究Golang中log标准库的使用 2023-07-25
- R语言的一个加法函数使用介绍 2022-11-14
- R语言因子型数值转数值型的操作 2022-11-23
- R语言向量下标和子集的使用 2022-12-10
- 如何将mysql数据库文件连接到Rails应用程序上的本地ruby 2023-09-21
- 汇编语言:比较指令、跳转指令、JCC的使用 2023-07-06