我想在具有2列的表之一上创建唯一索引,其中将指定一列的值。我的表中有两列INVOICE_NUMBER,INVOICE_PROCESS_STATUS。我想要将INVOICE_NUMBER和INVOICE_PROCESS_STATUS作为“ SUCCESS”的唯一记录。对于具有此组合的所有其他记录,不应在表中插入。如果出现任何此类记录,则应使INVOICE_PROCESS_STATUS为“ FAILED”,并且使该记录的REASON_CODE =“ DUPLICATE RECORD”。我能做到吗?
我试图创建以下提到的索引。 更改表SCF_INVOICE添加约束SCF_INVOICE_UK1唯一(INVOICE_NUMBER,INVOICE_PROCESS_STATUS) 启用;
插入 进入SCF_INVOICE ( INVOICE_ID, 发票号码, INVOICE_DUE_DATE, 货币, 量, BUYER_ID, SUPPLIER_ID, PROGRAM_CODE, INVOICE_REF_NO, REASON_CODE, INV_ACCEPTANCE_DATE, INVOICE_STATUS, INVOICE_PROCESS_STATUS, FILE_REF, 发票日期, PRE_ACCEPTED, IS_DISPUTED ) 价值 ( 410023, 'INVPEGA001', to_date('29 -MAY-19','DD-MON-RR'), '美元', 10000, 'Cust001', '000962', 'PEGASUPF', 'INV379884', 空值, to_date('01 -APR-19','DD-MON-RR'), '公认', '成功', 'FR0465', to_date('01 -JUL-19','DD-MON-RR'), 'Y', 'N' ); 对于下一次插入,它应将此记录作为INVOICE_PROCESS_STATUS插入为“ FAILED”。