Python脚本给数据库插入数据报错: raise errorclass(errno, errval) pymysql.err.IntegrityError: (1062, "Duplicate entry '3364483xx-diamond' for key 'unidx_uid_wt'")解决方案
一、问题描述
在SQL客户端插入数据时执行SQL语句INSERT INTO user_xxx(id, uid, total, balance, wallet_type, ctime, utime)VALUES(0, '336448391', 271, 89000098, 'coin', 1708588247, 1709007766);可以成功执行没报错;
使用python脚本执行SQL语句INSERT INTO user_xxx(id, uid, total, balance, wallet_type, ctime, utime)VALUES(0, '336448391', 271, 89000098, 'coin', 1708588247, 1709007766);出现报错: raise errorclass(errno, errval) pymysql.err.IntegrityError: (1062, "Duplicate entry '3364483xx-diamond' for key 'unidx_xx_xx'");
该报错表明在插入数据时插入数据的主键与已有数据的主键重复造成的,在网上查看好多资料没有直接针对该问题的解决方案,但找到一个可以间接解决的方案,如下:
二、解决方案
使用INSERT IGNORE语句可以忽略该报错,成功执行python脚本中的sql语句,即语句修改为如下,即可成功解决该报错:
INSERT IGNORE INTO user_xx(id, uid,total, balance, wallet_type, ctime, utime)VALUES(0, '{}', 271, {}, '{}', 1708588247, 1709007766);
三、INSERT IGNORE语句的使用: