如何在rails中分配AUTO_INCREMENT值

时间:2015-03-26 08:01:48

标签: mysql ruby-on-rails

我在rails项目中有一个用户迁移文件。我想让我的用户表ID从10000开始。像这样link

execute "ALTER TABLE users AUTO_INCREMENT = 10000;"

在此之后,我想设置小于10000的id。例如,我想让威廉的id为1,我应该怎么做?

2 个答案:

答案 0 :(得分:1)

从这篇文章link

  

ALTER TABLE table_name AUTO_INCREMENT = value;

     

在ALTER TABLE子句和值之后指定表名   我们想要在表达式AUTO_INCREMENT = value中重置为。

     

请注意,该值必须大于或等于当前值   自动增量列的最大值。

但实际上我可以通过赋予“:id”属性等于10000而创建User。

User.create(:id=>1, :name=>'William') 

也谢谢@SRDP。

<强> IMPROTANT: 如果您设置:id = 1,则用户ID可以从1开始。因此,首先将用户设置为10000,然后创建低于10000的任何用户。

答案 1 :(得分:0)

尝试下面的内容,但我不建议这是一个很好的做法。

首先创建记录,这样它就会有一些id,即10067或者其他什么东西,现在假设你想要将ssi记录分配给一个id,而这个id不是在你的情况下创建的,即id&lt; 1000你可以做的是

User.where(id: 1).update_all id: 10067