例如,我需要使用自定义ID保存db中的记录。
User.create(id: 467, name: "foo")
但它给我的错误:
Mysql2::Error - Lock wait timeout exceeded; try restarting transaction:
。我知道这个错误与id有关(因为如果我做User.create(name: 'foo')
它就可以了。
我需要说表是空的,所以不应该出现冲突。
但这需要做什么。 (我知道我打破了rails / ruby约定但仍然存在)
答案 0 :(得分:1)
如果是Rails 4:
User.create(:name=> 'foo').update_column(:id, 467)
它需要额外的数据库查询,因为它违反了Rails惯例。