例如,我需要使用自定义ID将记录保存在db中。
User.create(id: 467, name: "foo")
但是它给我返回错误:
Mysql2::Error - Lock wait timeout exceeded; try restarting transaction:
。我知道此错误与id有关(因为如果我执行User.create(name: 'foo')
,它会起作用。我需要说该表为空,因此不会出现任何冲突。
但这需要做。 (我知道我违反了惯例,但仍然)
最佳答案
如果是Rails 4:
User.create(:name=> 'foo').update_column(:id, 467)
由于它违反了Rails约定,因此将需要额外的数据库查询。
关于mysql - Rails,使用自定义ID保存记录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41275063/