首页  >  文章  >  后端开发  >  mysql插入问题

mysql插入问题

WBOY
WBOY原创
2016-08-20 09:04:001026浏览

两个用户同时插入一条数据,
insert into table set name='tom',num=2
insert into table set name='jack',num=2
,但是业务逻辑不允许num值重复出现。
怎么限制mysql不让插入重复数据?
1.添加联合唯一索引,但是程序会报错,感觉不可行。
有其他方法没?

回复内容:

两个用户同时插入一条数据,
insert into table set name='tom',num=2
insert into table set name='jack',num=2
,但是业务逻辑不允许num值重复出现。
怎么限制mysql不让插入重复数据?
1.添加联合唯一索引,但是程序会报错,感觉不可行。
有其他方法没?

使用唯一索引,在插入这个场景中使用事务处理,抛出事务提醒失败有重复值。

程序报错?
你捕获这个对应的异常,然后返回,做一个业务性的说明就可以了。

insert ignore不行吗

那就是每次插入之前都得去查询一下,表中这个num字段是否存在要插入的值;还有考虑到并发到情况。对不!要么用mysql事务;要么mysql锁表机制

建议数据库自己的校验机制,就像你的说唯一约束或索引都可以,在应用能够捕获到数据库的报错信息,做相应得的说明就可以了。

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn