300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > Duplicate entry for key 'PRIMARY'

Duplicate entry for key 'PRIMARY'

时间:2021-08-02 18:27:05

相关推荐

Duplicate entry for key 'PRIMARY'

错误场景:

更新同事代码之后启动报错,代码中的bug

具体的堆栈信息:

com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry '1' for key 'PRIMARY'at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)at java.lang.reflect.Constructor.newInstance(Unknown Source)at com.mysql.jdbc.Util.handleNewInstance(Util.java:404)at com.mysql.jdbc.Util.getInstance(Util.java:387)at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:932)at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3878)at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3814)at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2478)at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2625)at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2551)at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1861)at com.mysql.jdbc.PreparedStatement.executeUpdateInternal(PreparedStatement.java:2073)at com.mysql.jdbc.PreparedStatement.executeUpdateInternal(PreparedStatement.java:)at com.mysql.jdbc.PreparedStatement.executeLargeUpdate(PreparedStatement.java:5094)at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1994)...

错误原因:

主键自增的表进行了同主键的重复插入,也就是常说的主键冲突。

解决方案:

1、根据个人具体场景,不重复插入数据即可

2、插入数据的时候,不设置主键的值

3、插入数据的时候使用insert ignore ,保证已有记录便不再插入

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。