文章内容

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

这样就好多了,也复合规范。


参考资料:

1、MySQLdb Package


黄兵个人博客原创。

转载请注明出处:黄兵个人博客 - MySQLdb 错误处理

分享到:

发表评论

评论列表