注文品目のデータベースがあります。2 つの列は、バッチ処理を制御するためのものです。それらはprod_batch_id
(数値) およびprod_batch_index
(varchar2 - 10 バイト) と呼ばれます。どちらもヌルまたは塗りつぶされている必要がありprod_batch_index
、一意のインデックスがあります。バッチ処理されていない注文を取得するには、 prod_batch_id
null であるすべてのレコードを取得するだけです。
テーブル ( ord_lin
) には、バッチ処理を開始しようとしている特定の製品ラインに関連する 171,602 のレコードがあります。開始日によってバッチ クエリを制限するのではなく、これらすべてのレコードをダミー バッチに追加したいと考えています。
私はOracleやSQLに精通していないので、可能かどうかはわかりませんが、更新の一意制約を一時的に無効にしてから、それらのレコードについて文句を言わずに再度有効にする方法はありますか?
それができない場合、更新中に各レコードの一意の値を作成するにはどうすればよいですか?
注:バッチ システムは、もともとまったく新しい製品ライン用に作成されたものであり、バッチ処理が存在する前にこれらの製品が存在しなかったため、このように設計されました。今後、バッチ処理システムに切り替えられる他の製品ラインがいくつかある可能性が高いため、遅かれ早かれこの点に戻ることになります。
また、別のフィールドを、そのような制約を持たない「バッチ」フラグとして機能させることができることも認識していますが、それには多くのプログラムの更新が必要になります。