是否有可能在续集中批量更新?

时间:2012-05-03 14:28:35

标签: sql ruby batch-file sequel

是否可以使用Sequel在一次通话中进行多次更新?

例如,在我的服务器上进行大约200次更新可能需要几分钟,但如果我伪造一个SQL查询,它将在几秒钟内运行。我想知道Sequel是否可以用来伪造SQL查询甚至更好,单独完成整个操作。

3 个答案:

答案 0 :(得分:4)

我遇到的解决方案涉及update_sql方法。它不是自己进行操作,而是输出原始SQL查询。要批量处理多个更新,只需加入这些更新;在中间,用生成的字符串调用run方法,然后你就完成了设置。

批处理解决方案比多次更新快得多。

答案 1 :(得分:4)

您可以使用Datset#import http://sequel.jeremyevans.net/rdoc/classes/Sequel/Dataset.html#method-i-import "将多个记录插入关联的表中。如果数据库支持,则此方法可用于在单个查询中有效地将大量记录插入到表中。插入内容会自动包装在一个事务中。"

这是一个如何使用它的例子:

DB = Sequel.connect(...)
DB[:movies].import([:id, :director, :title, :year], [[1, "Orson Welles", "Citizen Kane", 1941],[2, "Robert Wiene", "Cabinet of Dr. Caligari, The", 1920]])

答案 2 :(得分:-2)