小编AMG*_*AMG的帖子

表检查约束以验证特定值的唯一性

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 的优雅解决方案?提前致谢...

oracle ddl check-constraints

0
推荐指数
1
解决办法
384
查看次数

标签 统计

check-constraints ×1

ddl ×1

oracle ×1