具体的如图所示吧,绿色的命令行是在window10下运行的,白色的是在Ubuntu下运行的,都出现了同样的问题
可能看的不大清楚,但是可以看到我的sql语句是INSERT INTO db_fan VALUES (1763252334, 2273317832)····ON DUPLICATE KEY UPDATE uid = uid AND fan_id = fan_id
可是最后却报了一个主键冲突的错误。
主要是两个地方有疑惑。
首先如果是主键冲突,那么应该报
Duplicate entry (1763252334-2273317832) for key 'PRIMARY'
,不应该是图中的Duplicate entry (1-2273317832) for key 'PRIMARY'
其次,我为了防止主键冲突,在SQL语句中加入了
ON DUPLICATE KEY UPDATE uid = uid AND fan_id = fan_id
。这样也不大可能会有主键冲突的错误报出丫?
我的表构造的应该没有任何问题,如下所示。
然后这个SQL语句是在python执行前直接打出来的。我用的是python3.6,使用pymysql对数据库进行操作。数据库版本如下所示。
谢谢大家了。这个问题困扰了我很久了。
如果在window下查看数据库的内容的话,可以看到一条正确一条错误的记录,如下
但是在ubuntu下查看,却只有一条错误的记录
如果我直接拿前面的sql语句丢到mysql里执行,会出现一样的问题。可是如果我不批量的插入记录,单个单个的插入就不会有任何的问题。
可是单个单个的插入之后,再次插入,也会产生同样的问题。
所以我也是很绝望了。
ON DUPLICATE KEY update uid = uid AND fan_id = fan_id