文章内容
2021/9/8 11:32:08,作 者: 黄兵
MySQLdb 错误处理
最近使用 DBUtils 数据库连接池,更新数据库,但是在更新的时候出现如下错误:
(1452, 'Cannot add or update a child row: a foreign key constraint fails (`rewrite_database_production`.`table_name_2019`, CONSTRAINT `table_name_2019_ibfk_1` FOREIGN KEY (`table_name_id`) REFERENCES `table_name` (`id`) ON D)')
出现这个问题,主要是外键不匹配。
对此异常,我是这样处理的:
from MySQLdb._exceptions import IntegrityError try: update_rewrite_s = self._rewrite_mysql.update(sql=update_rewrite_s_sql) except IntegrityError as e: self._logging.error(f'更新 table_name_2019 表出现错误,具体错误内容: {e}')
我们知道在 Python 中,下划线一般是内部变量,不提供外部调用,所以上面的导入方法是错误的。
查找了一下官方文档,有个:exception MySQLdb.IntegrityError
与此错误内容一样,于是修改导入代码:
from MySQLdb import IntegrityError
这样就好多了,也复合规范。
参考资料:
黄兵个人博客原创。
转载请注明出处:黄兵个人博客 - MySQLdb 错误处理
评论列表