数据库表中字段组合唯一性约束问题
一张表table1,三个字段a,b,c,可以这样:
第一条记录:(a,b,c)--(0001,yoursisiter_1,ok)
第二条记录:(a,b,c)--(0002,yoursisiter_2,ok)
但是当插入以下记录时会报错:
第三条记录:(a,b,c)--(0001,yoursisiter_2,error)
第四条记录:(a,b,c)--(0002,yoursisiter_1,error)
第五条记录:(a,b,c)--(0002,justuknowwhy,error)
就是说,a存在的情况下,b不能出现多种情况,b存在的情况下,也不能出现多种a即a,b要绑定。
求指导,谢谢。。
把a,b 弄成组合主键,毫无问题
--修改表联合主键,首先必须保证字段为NOT NULLALTER TABLE student WITH NOCHECK ADDCONSTRAINT PK_student PRIMARY KEY NONCLUSTERED(name,no)GO
现在才发现和我需求不符。
第一条记录:(a,b,c)--(0001,yoursisiter_1,ok)
第二条记录:(a,b,c)--(0002,yoursisiter_2,ok)
第三条记录:(a,b,c)--(0001,yoursisiter_1,delay)
第四条记录:(a,b,c)--(0002,yoursisiter_2,delay)
primary key(a,b)是不能实现以上的记录的。我要的a,b绑定。
即再插入(a,b,c)--(0001,yoursisiter_2,delay)或者(a,b,c)--(0002,yoursisiter_1,delay)就会报错。