当前位置:   article > 正文

Error updating database. Cause: java.sql.SQLIntegrityConstraintViolationException: Duplicate entry_error updating database. cause: java.sql.sqlintegr

error updating database. cause: java.sql.sqlintegrityconstraintviolationexce

最近在调试post方法时遇到SQLIntegrityConstraintViolationException: Duplicate entry xxx for key 这个错误,记录一下,方便后续查看
这个错误的意思是:违反唯一约束条件,也即该字段设置是唯一的,但是数据插入时,想要报错相同记录的数据。
错误信息如下:

{
    "timestamp": "2019-11-16 13:29:20",
    "status": 500,
    "error": "Internal Server Error",
    "message": "\r\n### Error updating database.  Cause: java.sql.SQLIntegrityConstraintViolationException: Duplicate entry '2' for key 'sutra_items_lesson'\r\n### The error may involve cn.htz.chs.mapper.SutraItemsMapper.insert-Inline\r\n### The error occurred while setting parameters\r\n### SQL: INSERT INTO sutra_items  ( sutra_id, title, description, original, audio_id, lyric_id, lesson, played_count, duration, hash, create_by, create_time, last_update_by, last_update_time )  VALUES  ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )\r\n### Cause: java.sql.SQLIntegrityConstraintViolationException: Duplicate entry '2' for key 'sutra_items_lesson'\n; Duplicate entry '2' for key 'sutra_items_lesson'; nested exception is java.sql.SQLIntegrityConstraintViolationException: Duplicate entry '2' for key 'sutra_items_lesson'",
    "path": "/put/sutraitems/item"
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

发现在建立数据库表字段时,lesson的字段设置了唯一索引,但是此时我们还是想让lesson支持重复的数据插入,可以有如下解决方法

  1. 使用可视化工具打开数据库,在sutra_items 表中查看索引,检查索引类型,选择Normal,保存后,问题解决
  2. 使用可视化工具打开数据库,在sutra_items 表中查看索引,选择对应报错的字段索引名称,直接删除改索引,新增限定唯一值的索引,比如新增title的唯一值索引,索引类型为Unique,索引方法默认为BTREE

上面都检查完毕,如果还是有问题,需要检查一下插入相关的代码,检查字段插入是否正确,保证插入的数据为唯一的

结论:
设置数据库字段时,要留心每个字段的属性,要根据每个字段的详细需求进行限定设置是否允许唯一性。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/538937
推荐阅读
相关标签
  

闽ICP备14008679号