日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

pymysql.err.IntegrityError: (1062, Duplicate entry 'roxml-ROXML' for key 'PRIMARY')

發布時間:2025/4/14 数据库 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 pymysql.err.IntegrityError: (1062, Duplicate entry 'roxml-ROXML' for key 'PRIMARY') 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在《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大小寫敏感說明
  • 轉載于:https://www.cnblogs.com/wuzhiblog/p/masteringdm_ch3_pymysql_error.html

    總結

    以上是生活随笔為你收集整理的pymysql.err.IntegrityError: (1062, Duplicate entry 'roxml-ROXML' for key 'PRIMARY')的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。