最近在调试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"

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

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

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

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

Error updating database. Cause: java.sql.SQLIntegrityConstraintViolationException: Duplicate entry 最近在调试post方法时遇到SQLIntegrityConstraintViolationException: Duplicate entry xxx for key 这个错误,记录一下,方便后续查看错误信息如下:{ "timestamp": "2019-11-16 13:29:20", "status": 500, "error": "Internal Server ...
Error updating database . Ca use : java . sql . SQL Integ rity Const ra int Violat ion Exception : O RA -00001: 违反唯一约束条件 (JDDS.PK_SHOP_MESSAGE) ### The error may involve com.shop.dao.itf.MessageMapper.insert-Inline ### The error occurred while setting pa ra meters ### SQL : in
在利用 mybatis 对数据将进行插入数据的时候,出现了如下错误: 1 org.springf ra mework.dao.Data Integ rity Violat ion Exception : 2 ### Error updating database . Ca use : java . sql . SQL Integ rity Const ra int Violat ion Exception : Column...
报错描述: Error updating database . Ca use : java . sql . SQL Integ rity Const ra int Violat ion Exception : Ca nnot add or update a child row: a foreign key const ra int fails (zqq.tbl_employee, CONST RA INT fk_emp_dept FOREIGN KEY (d_id) REFERENCES tbl_dept (id)) 解决方法: 数据库表中的字
开发我的个人博客项目时遇到了这个问题,Mybatis输出 SQL 报错信息如下: ### Error updating database . Ca use : java . sql . SQL Integ rity Const ra int Violat ion Exception : Dupli cat e entry 'qwe1111' for key 'blog_post_title_adf2f203_uniq' ### The error may exist in com/eastnotes/mapper/ArticleMap
Error updating database . Ca use : java . sql . SQL Integ rity Const ra int Violat ion Exception : Column ‘click_count’ ca nnot be null 今天写代码的时候,在页面提交表单一直不成功,查看后台发现报 sql 语句错误,提示属性不能为空。 一开始以为是我mapper.xml里面的 sql 语句写错了,后来又以为是页面调用的id名和数据库里的不一致,最后经过很长时间的检查,才发现是我的方法调用错了,GoodsServi
解决报错问题: SQL Integ rity Const ra int Violat ion Exception : Dupli cat e entry '4' for key 'PRIMARY'
解决报错问题: SQL Integ rity Const ra int Violat ion Exception : Dupli cat e entry ‘4’ for key ‘PRIMARY’ Sql Sess ion [org.apache.ibatis.sess ion .defaults.Default Sql Sess ion @4813a18a] was not registered for synchronizat ion ...
错误更新数据库。原因: java .lang.NullPo int er Exception 。 这个错误通常是由于代码中的空指针异常引起的。可能是因为代码中没有正确地初始化某些变量或对象,导致在更新数据库时出现了空指针异常。需要检查代码并确保所有变量和对象都被正确地初始化。 ### 回答2: “ error updating database . ca use : java .lang.nullpo int er exception ” 的错误提示表示在更新数据库时发生了空指针异常。 Java 中的空指针异常是一种常见的运行时异常,通常是由于调用了空对象(null)的方法或者字段引起的。 在这种情况下,可能是数据库连接未正确设置或已释放。如果尝试使用已关闭的数据库连接进行查询或更新,就会抛出空指针异常。避免这种情况的方法是确保数据库连接正确地设置和释放,可以使用try-with-resources或手动关闭连接来实现。 另外,可能是查询或更新语句中使用了空值(null)作为参数,例如尝试将空值写入数据库中的非空字段。这种情况可以通过在执行语句之前检查输入参数是否为null来避免。 还有可能是在执行操作之前没有绑定正确的参数,或者参数的类型不匹配,例如将字符串传递给整数类型的字段。这种情况可以通过检查参数的类型和值以及使用预编译语句来避免。 总之,出现“ error updating database . ca use : java .lang.nullpo int er exception ”错误提示时,需要进行仔细的调试和检查,找出引起异常的根本原因,并采取适当的措施来解决问题。 ### 回答3: " error updating database . ca use : java .lang.nullpo int er exception " 的意思是出现了更新数据库时的错误,原因是一个 Java 异常(NullPo int er Exception ),表示代码中出现了空指针。 在 Java 中,空指针通常发生在试图使用 null 引用类型的变量或属性时。这样的引用不指向任何有效的对象实例,因此任何对它们的方法调用都会导致 NullPo int er Exception 的异常。 在这种情况下,这个问题出现在试图更新数据库时。一个可能的情况是尝试更新数据库的某个字段,但是这个字段的值为空,而代码没有正确处理这种情况,导致出现空指针异常。 解决这个问题的最好方法是检查代码中所有的空引用,确保它们不会被调用,或者在调用它们之前进行必要的检查以避免空指针异常的发生。另一种方法是使用 try- cat ch 块捕获异常,以便在出现问题时进行处理,而不是导致整个程序崩溃。 最重要的是,要了解代码所依赖的库和框架,以便及时修复和升级它们,避免类似的问题的再次发生。 Error updating database. Cause: java.sql.SQLIntegrityConstraintViolationException: Duplicate entry 阿维的博客日记: 挖了个大钞,完全正确,我的就是插入了相同的key,因为MYSQL中不区分大小写,当时大意了,结果爆错,我淦!! 表情包 android展讯平台重要的打包命令及生成镜像文件的Linux命令 上进的打工人: 同楼上的.pl可以看下么 resource failed to call close qq_58098194: 这一段加在哪呢,因为是导入的工程也不知道是哪泄露了 Linux 云服务器 sudo apt-get update Cannot initiate the connection to archive.ubuntu.com:80 sinat_39505798: 更新了源,还是报一样的问题。 Linux 云服务器 sudo apt-get update Cannot initiate the connection to archive.ubuntu.com:80 Brave Seeker: 感谢博主!!搜了一整天,别的方法都不行,现在成功解决,来报个喜。