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