Re: [SQL ] 字段A AND 字段B 不得重复

楼主: LaPass (LaPass)   2014-11-24 11:05:05
※ 引述《brocker (别问我居士)》之铭言:
: 数据库名称:MSSQL
: 数据库版本:2012
: 想请问一下大大们,我今天有一个资料表,要新增内容进去,里面有两个字段,字段A和字段B
: 字段A的资料内容可以重复
: 字段B的资料内容也可以重复
: 但是字段A和字段B的内容 新增下一笔时不能跟这两栏同时一样
: 也就是说字段A(姓名)有一笔叫王小明 字段B(打卡日期)是2014/9/9
: 姓名或是字段单独的时候可以重复
: 但是一起的时候不能重复
: 请问一下这样条件约束(Constraint)要怎么设定,谢谢!
ALTER TABLE `表名称` ADD UNIQUE `索引名称` ( `A` , `B` );
A可重复
B也可重复
但是A跟B同时重复的时候,就会跟你讲说已经有这个索引,塞不进去
还有我记得主键也可以同时设定在两个字段上
运作方式同上,会把两个字段一起判断
作者: BigLoser (大鲁蛇)   2014-11-24 12:00:00
请问,A:小明 B:NUL 加入这样的资料两笔,加的进去吗?我把来也是想说把两个加起来设成为一值就好了可是我上面说的A字段有值B字段NULL如果已经有一笔这样的资料,第二笔在进去的时候应该会失败吧,这样应该就不符合原PO条件
楼主: LaPass (LaPass)   2014-11-24 13:26:00
应该不能加没错,不过不是说不允许A、B都一样的状况吗?那当然包跨NULL
作者: BigLoser (大鲁蛇)   2014-11-24 14:29:00
因为我看到原问题有一个"姓名或是字段单独的时候可以重复",我还以为她希望可以有两笔小明,而没有日期或许我太执著于这一点的,应该先厘清原问题那这个解法应该就没问题,那我可以延伸这题请教一下如果是可以有两笔 小明, NULL这种状况该怎么解?
楼主: LaPass (LaPass)   2014-11-24 14:53:00
应该也只能在insert之前下判断式了吧或是你讲的trigger
作者: BigLoser (大鲁蛇)   2014-11-24 15:00:00
嗯..也就是约束条件做不到吗? 因为我不知道怎么做只好用trigger

Links booklink

Contact Us: admin [ a t ] ucptt.com