jdbc-数据库插入数据时候,Duplicate entry问题解答
先去根据某一字段值查询数据库中是否有记录,有则更新,没有则插入。
Duplicate entry
com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry '香港' for key 'PRIMARY'
解决方法:
String sql = "insert into province values(?,?,?,?,?) on Duplicate key update provinceName=values(provinceName),currentConfirmedCount=values(currentConfirmedCount),confirmedCount=values(confirmedCount),curedCount=values(curedCount),curedCount=values(curedCount)";
ps = conn.prepareStatement(sql);
说明:
on Duplicate key update 这样做的目的就是在向数据库插入一条数据的时候,
ON DUPLICATE KEY UPDATE需要有在INSERT语句中有存在主键或者唯一索引的列,并且对应的数据已经在表中才会执行更新操作。而且如果要更新的字段是主键或者唯一索引,不能和表中已有的数据重复,否则插入更新都失败。