この表を検討してください。
テーブル:ORDER列:id、order_num、order_date、order_status
このテーブルには100万件のレコードがあります。入力テキストファイルから読み取るorder_numの束(約10,000)に対して、order_statusを値「5」に更新したいと思います。
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回ループする必要がありますが、これは非常に遅い場合がありますが、この場合はオーダーレベルで監査できます。
他に方法はありますか?