首页 / XML / pymysql.err.IntegrityError: (1062, "Duplicate entry 'roxml-ROXML' for key 'PRIMARY'")
pymysql.err.IntegrityError: (1062, "Duplicate entry 'roxml-ROXML' for key 'PRIMARY'")
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了pymysql.err.IntegrityError: (1062, "Duplicate entry 'roxml-ROXML' for key 'PRIMARY'"),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1590字,纯文字阅读大概需要3分钟。
内容图文
![pymysql.err.IntegrityError: (1062, "Duplicate entry 'roxml-ROXML' for key 'PRIMARY'")](/upload/InfoBanner/zyjiaocheng/497/61abf8d1a92a424aa5739f0752b428a4.jpg)
在《Python数据挖掘-概念、方法与实践》一书的第3章实体匹配中,如果一路按照作者的代码及SQL语句进行配置运行的话,会出现如题目所示的错误。根据python脚本的执行错误提示显示,错误发生在脚本中的第一个INSERT INTO
语句中。
其实并不是到插入roxml
时候才会报错,而是在前面插入optionparser
的时候就已经报错了。这个错误意思是代码试图在表中主键列被插入两个重复值。这个问题耗费了我三个小时,才最终把它解决。
书中的第一个INSERT
语句目的是要把具有相同URL的项目的项目名称插入到book_entity_matches
表中,在来自RF和RG的两个网站的项目里面,有一些项目,它们的名字是仅有大小写的区别的,如下:
上两图中分别是从RF和RG表中查询出来的结果,可以看到,的确是存在项目名称只有大小写区别的项目。但由于MySQL默认它的VARCHAR字段是不区分大小写的,所以在执行INSERT INTO
语句当尝试插入如上图所示的两个相同的(只有大小写区别)项目名称时,就出现了错误!
解决方法之一,就是把这两个字段类型更改为BINARY:
ALTER TABLE book_entity_matches MODIFY COLUMN rg_project_name VARCHAR(100) BINARY NOT NULL;
ALTER TABLE book_entity_matches MODIFY COLUMN rf_project_name VARCHAR(100) BINARY NOT NULL;
其它的方法有:在创建表时指定字段属性为BINARY,或者在创建表时指定编码类型,类型后缀为cs(如utf8_general_cs)的即是区分大小写,为ci(如utf8_general_ci)的即不区分。
参考:
- MySql 设置字段值区分大小写
- MySQL大小写敏感说明
pymysql.err.IntegrityError: (1062, "Duplicate entry 'roxml-ROXML' for key 'PRIMARY'")
标签:int 创建表 gpo img bubuko name ica 大小写 arc
本文系统来源:http://www.cnblogs.com/wuzhiblog/p/masteringdm_ch3_pymysql_error.html
内容总结
以上是互联网集市为您收集整理的pymysql.err.IntegrityError: (1062, "Duplicate entry 'roxml-ROXML' for key 'PRIMARY'")全部内容,希望文章能够帮你解决pymysql.err.IntegrityError: (1062, "Duplicate entry 'roxml-ROXML' for key 'PRIMARY'")所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。