插入查询不会在轨道上返回

时间:2019-03-04 14:34:28

标签: ruby-on-rails rails-activerecord bulkinsert

首先,对不起我的英语不好。

我有一个Rails 2.3.1项目,并将其更新到版本5.2.1。在这个项目上,我有一个delay_job,它在数据库表中插入多行。我要插入的代码是:

ActiveRecord::Base.connection.execute("
INSERT INTO <Table_Name> (id, col2, col3, col4...) 
VALUES ((select coalesce(max(id),0)+1 from <Same_Table_Name>), val2, val3, val4...);...")

在rails 2.3.1上运行良好,我可以执行20000次插入而不会出现问题,但是在rails 5.2.1中,如果查询具有大约1500个以上的插入,则将行插入到表中,但是查询不会结束,不会返回。

如果我从查询中删除了ID和合并,然后将其留给了Auto Increment,则由于项目中的其他插入未更新Auto Increment的索引,它有时会工作,有时还会崩溃。而且,如果我直接从Postgres查询工具中执行查询,则效果很好。

我也已经尝试使用ActiveRecord :: Base.connection.exec_query,但是插入的限制更小。

0 个答案:

没有答案