问题描述:数据库表中有a,b,c三个字段,a是自增主键,c是状态,只有0,1两种可能,默认为1,b是名称。要求状态为1 的名称不允许重复,状态为0的可以无限重复。
针对这个问题,我查了好久的资料,都没想到办法,还是老大帮忙解决的,感觉很有用,专门记录在这里,分享给大家。
有两个方法:方法1:
将b,c设置联合唯一索引,在将状态改为0的时候,将b的名称按a_b的格式改掉,这样就能保证b,c联合的唯一性。
方法2:建立带条件的索引。步骤如下:将b字段设置成唯一索引,然后右键-属性-筛选器,在筛选器里填写状态=1,保存。这样带条件的索引就建好了。