|
|
1
3
最快的方法——在任何语言中,都不知道如何在Rails中实现——是将内存中的哈希转储到数据库中的临时表中,该临时表只包含哈希的键和值的列,然后发出一个带有联接的更新命令,该联接将表链接到要用新的temp表更新的表中。 检查查询计划以确保优化器正常工作,在发布更新之前在临时表上构建临时索引。如果没有,就自己建立索引。 |
|
|
2
2
我不确定“好”,但在许多DBMS平台上,可以在一次执行中发送多个SQL语句。这个
ar-extensions
例如,gem可以帮助批处理insert语句,尽管根据平台的不同,它可能需要进行一些调整——例如,Oracle有点棘手。我不认为它直接处理更新,但是您可以从这里的另一个答案来研究使用临时表技巧:批量加载数据并使用
可能只有在可能的情况下才是“好的”,但是Rails(或者更准确地说是ActiveRecord)从未打算绝对地使用ORM函数
一切
这就是为什么
|
|
|
3
2
好吧,我已经用迈克·伍德豪斯和特塔卡拉的暗示解决了这个问题。这是代码(我正在使用 Ruby Sequel gem )
我使用的是Postgres,因此其他RDBMS的确切更新SQL可能有所不同。 |
|
|
4
-1
对。我不知道Rails的具体情况,但是您可以使用in-sql关键字,其工作方式如下:
|
|
|
Johnny T · 基于当前值的SQL合并表[重复] 1 年前 |
|
John D · 需要为NULL或NOT NULL的WHERE子句 1 年前 |
|
ojek · 如何对SQL结果进行分组和编号? 1 年前 |
|
|
senek · 如何在PL/SQL中将选择结果(列)放入数组中 1 年前 |
|
|
Sax · 规范化Google表格(第一步) 1 年前 |
|
|
Jatin · 检索卷计数的动态sql抛出错误语法错误[关闭] 1 年前 |
|
|
Andrus · 如何在sql中查找第二个匹配项 1 年前 |