考虑这张表:
表:订单列:id、order_num、order_date、order_status
该表有 100 万条记录。我想将 order_status 的值更新为“5”,以获取我将从输入文本文件中读取的一堆(大约 10,000 个)order_num。
My SQL could be:
(A) update ORDER set order_status=5 where order_num in ('34343', '34454', '454545',...)
OR
(B) update ORDER set order_status=5 where order_num='34343'
我可以多次循环这个更新,直到我完成了我的 10,000 个订单更新。(另请注意,我几乎没有像 ORDER_ITEMS 这样的 ORDER 子表,其中必须更新类似的状态并审核信息)
我的问题是:
我如何在单独的 ORDER_AUDIT 表中审核此更新:
Order_Num:34343 - 已成功更新
Order_Num:34454 -未找到订单
Order_Num:454545 - 已成功更新
Order_Num:45457 -未找到订单
如果我像 (A) 那样进行批量更新,我无法在订单级别进行审计。
如果我在 (B) 中的时间更新时选择单一订单,我将不得不循环 10,000 次——这可能很慢——但在这种情况下,我可以在订单级别进行审计。
还有其他方法吗?