pymysql.err.InternalError: (1205, 'Lock wait timeout exceeded; try restarting transaction')錯誤處理


問題描述:

  在使用pymysql庫時,利用游標執行插入操作,產生錯誤,會出現pymysql.err.InternalError: (1205, 'Lock wait timeout exceeded; try restarting transaction')的錯誤,此時產生了不必要的鎖而鎖住其他的操作。

   插入操作產生錯誤的原因有很多,我這里是因為主鍵有相同的值,其他的增刪改可能也會因為錯誤產生死鎖。

 

 

解決辦法:

  我們可以用 try 來捕獲異常,進行錯誤回滾,防止鎖住其他操作,也可以產生錯誤時跳過當前的錯誤操作不執行並print一個錯誤提示出來

1     curosr_1 = conn.cursor()
2 
3     try:
4       curosr_1.execute("insert IGNORE into lgjob(job_name,salary,work_years,degree_need,job_type,job_url) values('b','b','c','d','e','f') ")
5       conn.commit()
6     except Exception as e:
7          # 錯誤回滾
8          conn.rollback()

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM