My SQL 防止插入重复数据(校验两个及以上字段)

今天遇到一个场景:

一张表中要求某两个字段不能重复

假设字段‘a’与字段‘b’不可重复,即

id(key)abcd
1a1b1c1d1
2a1b1c2d2

上表是不对的,也即是说,执行这样一条sql语句也是不对的:

insert into table_name values ('a1', 'b1', 'c3', 'd3');

那么如何在插入之前就知晓这条数据是否是合理的呢?

解决方法1:

在插入之前先查询,比较之后,没问题再执行sql语句。但是这样未免太麻烦。

解决方法2:

给表添加索引,索引设置为唯一,并绑定‘a’和‘b’两个字段(此处用的项目中的图,ide为pycharm):

 这样在插入的时候,就会自动校验'a','b'两个字段,避免重复。

需要注意的是,添加了这样的唯一索引后,插入重复数据会报错,因此需要关键字ignore

insert ignore into table_name values('a1', 'b1', 'c3', 'd3');

这样插入数据,虽然是错的,但是不会报错,而且也不会插入任何数据。

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值