create table th_test1 
(
       a char(1),
       b char(1),
       c char(1)
)
CREATE UNIQUE INDEX uq_test1 on th_test1(decode(c,'Y',a,null),decode(c,'Y',b,null),decode(c,'Y',c,null));跪求大神帮忙看看在mysql中怎么实现这中联合唯一函数索引.......

解决方案 »

  1.   

    你是哪个版本的 mysql ;如果是 5.7 的话,有一个 Generated Column ,你可以考虑一下;
      

  2.   

    我想了下单纯性的直接一个Generated Column 字段然后在该字段上加唯一索引没有用的,因为需要实现的是可以存在多个C字段是N的,但是只能存在一条C字段是Y的insert into th_test1 values('B','W','Y');
    UPDATE th_test1 SET C='N' WHERE A='B';
    insert into th_test1 values('B','W','Y');
    UPDATE th_test1 SET C='N' WHERE A='B';