插入資料至MySQL資料庫時,沒有重複資料列卻顯示1062 — Duplicate entry
Jan 21, 2024
當我從網路上下載台股的券商分點買賣資料,並使用Python insert至MySQL出資料庫時,MySQL回傳以下錯誤訊息:
1062 — Duplicate entry ‘2022–02–10–1712–116M-29.65’ for key ‘PRIMARY
即使使用Pandas重覆確認後,仍然看不出哪裡有重複資料,仔細一查才幾個可能會原因,以下一一列舉。
Null
理論上Primary Key是不允許Null的,因此Null可能會導致insert出錯。
編碼
有些資料庫的編碼方式是不區分大小寫的(not case-sensitive),這也是我在寫入資料庫時會出錯的原因。
是否使用Float Column當成Primary Key
根據should we use float as primary key in sql-server,資料庫通常不會阻止你用浮點數的欄位當成主鍵,但強烈不建議這麼做。