ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 利用基于函数的唯一索引,完成条件性唯一约束

利用基于函数的唯一索引,完成条件性唯一约束

原创 Linux操作系统 作者:甲骨文-MarkChen 时间:2012-04-10 17:07:55 0 删除 编辑
最近有一个银行帐号表,工号和银行帐号是否主要字段要加个限定索引,逻辑:一个工号只能有一个主要的(1),可以有多个非主要的(0),如果在这两个字段上加个普通索一性索引,那多个非主要的就也不能插入,后来找找资料,可以利用函数索引来实现,example:
 
--利用基于函数的唯一索引,完成条件性唯一约束   当flag为1时,name唯一,flag为其他时,name可重复
CREATE TABLE c_test(NAME varchar2(10),flag char(1));
CREATE  UNIQUE INDEX flag_c_test_idx ON c_test (CASE flag WHEN '1' THEN NAME END );
INSERT INTO c_test VALUES('name2','1');
INSERT INTO c_test VALUES('name2','2');
INSERT INTO c_test VALUES('name2','2');
INSERT INTO c_test VALUES('name2','1');--此条插入会失败
SELECT * FROM c_test ORDER BY 2

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26816308/viewspace-720841/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
下一篇: RMAN备份实验记录
请登录后发表评论 登录
全部评论

注册时间:2012-04-10

  • 博文量
    5
  • 访问量
    5480