mysql --unique关键字总结

一创建Unique索引

  • 建立表时创建
create table user(
id int,
name varchar(200),
unique(name)
);
  • 添加unique
alter table user add unique key(name)
  • 删除
alter table user drop index name

创建多列unique

现在业务需求是希望username+colleage+num不能全一样,但是有一个不一样就没事

alter table stu add unique key(username,colleage,num);

重复插入相同值得解决方法

  • 方案一:只想跳过,无需报错
    :加 ignore关键字
insert ignore into user value...

这样mysql就会自动跳过重复的行

- 方案二:对重复的行,把除了了unique键外的键进行更新

用on duplicate key update xx=xx

insert into test values('xiao','qqqq') on duplicate key update coll='lkasd';

问题一:除了重复的值需要进行更新,还有需要新插入的值?
这一点完全不用担心,mysql会自动判断是重复了进行跟新,还是没重复而新插入

 insert into test values('xiao','qwer'),('lll','hhhh')on duplicate key update coll='mmmm';

问题二:如何动态的修改非重复的值的特定行,而不是上述的指定修改?
采用Values关键字

insert into test values('xiao','aasd'),('kkkk','zzzz')on duplicate key update coll=values(coll);
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值