有两种方法:
一个表可以定义多个唯一值约束
方法一:create table 表名(... , 字段名 类型及长度 UNIQUE, ...) ,这种最基本的操作,不做演示
方法二:创建完表后添加唯一值约束
问题:将要设置唯一值约束的列已存在的值必须不重复
如以下存在两条重复T_USER_INVITATIONCODE字段的记录,值为taKgfQya
执行
alter table T_USER_INVITATIONCODE add unique(IC_INVITATION_CODE);
报错
将两条重复字段的记录删除一条后
再执行alter table T_USER_INVITATIONCODE add unique(IC_INVITATION_CODE);
结果
很OK
此时,需要验证下此约束是否生效,插入一段相同字段值的记录,看看,其中插入语句中的值taKgfQya是和以上查询结果的记录重复的,那么
执行: insert into T_USER_INVITATIONCODE (IC_CODE,IC_INVITATION_CODE,IC_NAME,IC_STATUS,IC_CREATEDATE,IC_EXPIRATIONDATE) values ('1242' ,'taKgfQya' ,'123' ,'YY' ,to_date('2021-03-27 09:33:39', 'yyyy-mm-dd hh24:mi:ss') ,to_date('2021-03-27 09:33:39', 'yyyy-mm-dd hh24:mi:ss') )
结果
这样,就证明唯一约束设置已经成功了
一个列的唯一约束如此操作,那多列的具体操作,请重复以上步骤
删除
alter table 表名
drop constraint 约束名;