日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

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

發布時間:2025/4/14 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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')的全部內容,希望文章能夠幫你解決所遇到的問題。

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