赞
踩
最近在调试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支持重复的数据插入,可以有如下解决方法
上面都检查完毕,如果还是有问题,需要检查一下插入相关的代码,检查字段插入是否正确,保证插入的数据为唯一的
结论:
设置数据库字段时,要留心每个字段的属性,要根据每个字段的详细需求进行限定设置是否允许唯一性。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。