Oracle定义/删除一个或者多个列为唯一约束UNIQUE的具体操作

有两种方法:

一个表可以定义多个唯一值约束

方法一: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 约束名;

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值