Rails,使用自定义ID保存记录

时间:2016-12-22 02:48:50

标签: mysql ruby-on-rails ruby

例如,我需要使用自定义ID保存db中的记录。

User.create(id: 467, name: "foo")

但它给我的错误: Mysql2::Error - Lock wait timeout exceeded; try restarting transaction:。我知道这个错误与id有关(因为如果我做User.create(name: 'foo')它就可以了。

我需要说表是空的,所以不应该出现冲突。

但这需要做什么。 (我知道我打破了rails / ruby​​约定但仍然存在)

1 个答案:

答案 0 :(得分:1)

如果是Rails 4:

User.create(:name=> 'foo').update_column(:id, 467)

它需要额外的数据库查询,因为它违反了Rails惯例。