插入資料至MySQL資料庫時,沒有重複資料列卻顯示1062 — Duplicate entry

--

當我從網路上下載台股的券商分點買賣資料,並使用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,資料庫通常不會阻止你用浮點數的欄位當成主鍵,但強烈不建議這麼做。

--

--

ARON HACK 亞倫害的
ARON HACK 亞倫害的

Written by ARON HACK 亞倫害的

唸過設計,當過行銷企劃,蓋過電商網站的零售業數據分析師。 https://www.aronhack.com/ | https://www.linkedin.com/in/aronwu/

No responses yet