Oracle 10g:假设有下表(T_REGISTER):
ID_PROCESS PERIOD CUSTOMER STATUS
===========================================
0001234 201801 12300344 INVALID
0001236 201801 12300344 INVALID
0001246 201801 12300344 UNPAID
0001249 201801 12300344 UNPAID
0001278 201801 12300344 COMPLETED
Run Code Online (Sandbox Code Playgroud)
ID_PROCESS 是 PK。但我也需要 (PERIOD + CUSTOMER + STATUS) 在 STATUS 完成时是唯一的。
换句话说,对于一个 UNIQUE (PERIOD + CUSTOMER),我不在乎有几个 INVALID 或 UNPAID 行,但我只能承认一个唯一的 (PERIOD;CUSTOMER;STATUS="COMPLETED")
在寻求触发解决方案之前,有没有使用 CHECK CONSTRAINT 的优雅解决方案?提前致谢...