問題描述:
在使用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()