在mysql中有一个非主键不可重复字段(目前该字段没设置unique属性) 现在插入一条数据前端传来的数据 如果该字段设置成unique属性 我该怎样给前端返回错误的message(可能会有其它插入错误,目前只统一设置message=“请求失败“) 如果不设置unique 我是需要在service验证该数据的该字段是否已存在吗重新写一个验证service吗 哪种方法好
本问题来自阿里云开发者社区的【11大垂直技术领域开发者社群】。 https://developer.aliyun.com/article/706511 点击链接欢迎加入感兴趣的技术领域群
如果该字段是业务性唯一字段,且必须验证唯一性。 方案一:不设置unique唯一性约束,插入前,进行查询验证,在service进行一次查询;如果已经存在,返回信息重复message。这个方案在多并发的时候,是有问题的,无法真正解决问题,这是违背ACID原则的。 方案二:设置uniue唯一性约,在插入之前进行查询验证,并在插入之后进行exception捕捉,进行返回相应的message。满足需求且满足acid,但是不太和谐 建议使用方案二
设置unique 比较好,报错信息就提示输入的值已存在,就像注册时提示还用户名已存在一样提示不可以吗?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。