我有一个订单行项目数据库。其中两列用于控制批处理。它们被称为prod_batch_id
(number) 和prod_batch_index
(varchar2 - 10 byte)。它们都需要为空或填充,并且prod_batch_index
有一个唯一的索引。要获取未批处理的订单,我们只需提取所有prod_batch_id
为空的记录。
表 ( ord_lin
) 有 171,602 条记录,这些记录与我即将开始批处理的特定产品线有关。我不想将我的批处理查询限制在我们开始的日期之前,我想将所有这些记录添加到一个虚拟批处理中。
我不精通Oracle,甚至SQL,所以我不知道这是否可能,但有没有办法暂时禁用更新的唯一约束,然后再次启用它而不抱怨那些记录?
如果这不是一个选项,我将如何在更新期间为每条记录创建唯一值?
注意:批处理系统最初是为一条全新的产品线设计的,之所以这样设计,是因为在批处理之前这些产品并不存在。我可能会有其他几条产品线将切换到批处理系统,所以我迟早会再次回到这一点。
我也知道我可以做一些事情,比如让另一个字段充当没有此类约束的“批处理”标志,但这将涉及更新很多程序。