例如,我需要使用自定义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/

10-11 01:35
查看更多