通常遇到這狀況代表有設定unique的欄位, 被重複了,
而且要新增的一筆資料又與該欄位有重複的值,則會報錯,
假設我的欄位id已經有202204150012的資料時, 要再增加一筆id是202204150012的資料, 錯誤訊息如下, 會告知是哪個欄位重複與重複的value
(pymysql.err.IntegrityError) (1062, "Duplicate entry '202204150012' for key 'tb_order.id'")
解決方式1:
將該欄位的unique拿掉
解決方式2:
做異常處理與回滾(rollback)
try:
db.commit()
except:
# 回滾
db.rollback()
finally:
# 關閉數據庫連接
db.close()
解決方式3:例外處理時跳過
try:
....
except IntegrityError as error:
# 獨立處理重複
result1 = re.search('Duplicate entry', str(error))
if result1:
logger.error('Duplicate entry')
pass
except Exception as error:
# 其他例外處理 ...