开发者社区> 问答> 正文

mysql 中unique插入重复怎样给前端返回message

已解决

在mysql中有一个非主键不可重复字段(目前该字段没设置unique属性) 现在插入一条数据前端传来的数据 如果该字段设置成unique属性 我该怎样给前端返回错误的message(可能会有其它插入错误,目前只统一设置message=“请求失败“) 如果不设置unique 我是需要在service验证该数据的该字段是否已存在吗重新写一个验证service吗 哪种方法好

本问题来自阿里云开发者社区的【11大垂直技术领域开发者社群】。 https://developer.aliyun.com/article/706511 点击链接欢迎加入感兴趣的技术领域群

展开
收起
茶什i 2019-09-02 11:52:43 2229 0
2 条回答
写回答
取消 提交回答
  • 采纳回答

    如果该字段是业务性唯一字段,且必须验证唯一性。 方案一:不设置unique唯一性约束,插入前,进行查询验证,在service进行一次查询;如果已经存在,返回信息重复message。这个方案在多并发的时候,是有问题的,无法真正解决问题,这是违背ACID原则的。 方案二:设置uniue唯一性约,在插入之前进行查询验证,并在插入之后进行exception捕捉,进行返回相应的message。满足需求且满足acid,但是不太和谐 建议使用方案二

    2019-09-04 15:30:34
    赞同 1 展开评论 打赏
  • 精于基础,广于工具,熟于业务。

    设置unique 比较好,报错信息就提示输入的值已存在,就像注册时提示还用户名已存在一样提示不可以吗?

    2019-09-03 20:07:27
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
One Box: 解读事务与分析一体化数据库 HybridDB for MySQL 立即下载
One Box:解读事务与分析一体化数据库HybridDB for MySQL 立即下载
如何支撑HTAP场景-HybridDB for MySQL系统架构和技术演进 立即下载

相关镜像