甲骨文。约束一行具有一定的值

时间:2014-02-17 21:48:16

标签: sql oracle constraints

我想在一个表中添加一个约束,其中任何时候只有一行可以存在某个列中的值。

例如 创建表MyTable  ....     status varchar(1); )

状态栏检查为“O”,“C”,“P”表示打开,关闭或待处理。

可以有多个Closed和Pending,但表中只有一行(或没有)可以打开。

任何指示赞赏。

1 个答案:

答案 0 :(得分:3)

创建一个唯一的函数索引:

CREATE UNIQUE INDEX myindex ON mytable( CASE status WHEN 'O' THEN 'O' END );

它将阻止插入两个“O”值,但会允许其他重复值。