滑轨控制台
u = User.find(9)
u.id = 7#没有其他ID为7的记录
保存
=>是的
全部用户
ID尚未更改。
如何更改主要ID?为什么会阻止此操作?
在Rails 3.0.7和PostgreSQL中工作。
编辑:
由于有充分的理由不这样做,因此我将解释原因,并希望这是一个很好的理由。
我们正在对登台进行可用性测试,因此我希望它看起来像正式产品,以便每个人都可以轻松进行。我不想通过在暂存中按一个顺序在生产中按一个顺序排列某些事情,而在生产中按不同顺序排列某些东西来在可用性测试过程中造成困惑或错误。我仅在登台数据库上更改了一个PK ID。
不要在生产数据库上执行此操作!
最佳答案
我不确定为什么它阻止了该操作,但是确实可以阻止它。
您可以为用户使用update_all方法绕过此操作。
User.where(id: 7).update_all(id: 9)
尽管可能的话,您实际上应该避免这样做。
关于ruby-on-rails - 如何在Rails中更改记录的主要ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8301635/