我需要有关逻辑的建议。应用程序中有一个更新查询,如下所示
<%= link_to "Edit", edit_post_path(post.id), :class => "btn", :remote => true, "data-toggle" => "modal", "data-target" => "#{post.id}-my-modal" %>
此更新从返回UPDATE TABLE
SET FLAG = CASE
WHEN FLAG = 'IP' THEN 'P'
WHEN FLAG = 'IH' THEN 'H'
WHEN FLAG = 'IM' THEN 'M'
END
WHERE ADJUSTMENT_ID IN (SELECT Query )
的Java函数执行。
现在我需要获取更新记录的详细信息(表TABLE中的列数很少)并从函数而不是void
返回LIST
。
由于性能原因,首先运行SELECT然后在循环中更新记录不是一个选项。记录使用单个UPDATE语句更新,因为它应该运行得更快。
保持可比性能的选择是什么?我应该使用存储过程吗?
答案 0 :(得分:4)
SELECT ... FROM FINAL TABLE (UPDATE ....)
将完成这项工作。由于它是一个单独的SQL语句,因此性能也很好。