pymysql.err.InternalError: (1205, 'Lock wait timeout exceeded; try restarting transaction')错误处理...

本文介绍在使用pymysql执行插入操作时遇到的死锁问题及其解决方案。通过使用try-except结构来捕获异常并回滚错误,避免了因主键重复等原因导致的死锁,确保了数据的一致性和应用程序的稳定性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述:

  在使用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()

 

转载于:https://www.cnblogs.com/jyroy/p/9439436.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值