trapping a MySql warning(捕获一个 MySql 警告)
问题描述
在我的 python 脚本中,我想在使用 MySql 的查询期间捕获为列 'xxx' 截断的数据"警告.
In my python script I would like to trap a "Data truncated for column 'xxx'" warning durnig my query using MySql.
我看到一些帖子建议使用下面的代码,但它不起作用.
I saw some posts suggesting the code below, but it doesn' work.
您是否知道在使用此代码之前是否必须导入某些特定模块或者是否应该调用某些选项/标志?
Do you know if some specific module must be imported or if some option/flag should be called before using this code?
谢谢大家
阿夫格
import MySQLdb
try:
cursor.execute(some_statement)
# code steps always here: No Warning is trapped
# by the code below
except MySQLdb.Warning, e:
# handle warnings, if the cursor you're using raises them
except Warning, e:
# handle warnings, if the cursor you're using raises them
推荐答案
警告就是:警告.他们被报告给(通常)stderr,但没有做任何其他事情.你不能像异常一样捕捉它们,因为它们没有被引发.
Warnings are just that: warnings. They get reported to (usually) stderr, but nothing else is done. You can't catch them like exceptions because they aren't being raised.
但是,您可以使用 warnings 模块配置警告时要做什么,并关闭它们或将它们变成异常.例如, warnings.filterwarnings('error', category=MySQLdb.Warning) 将 MySQLdb.Warning 警告 转换为异常(在这种情况下,它们将被使用您的 try/except) 或 'ignore' 根本不显示它们.您可以(并且可能应该)拥有比类别更细粒度的过滤器.
You can, however, configure what to do with warnings, and turn them off or turn them into exceptions, using the warnings module. For instance, warnings.filterwarnings('error', category=MySQLdb.Warning) to turn MySQLdb.Warning warnings into exceptions (in which case they would be caught using your try/except) or 'ignore' to not show them at all. You can (and probably should) have more fine-grained filters than just the category.
这篇关于捕获一个 MySql 警告的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:捕获一个 MySql 警告
基础教程推荐
- 在 MySQL 中:如何将表名作为存储过程和/或函数参数传递? 2021-01-01
- 什么是 orradiag_<user>文件夹? 2022-01-01
- MySQL 中的类型:BigInt(20) 与 Int(20) 2021-01-01
- 表 './mysql/proc' 被标记为崩溃,应该修复 2022-01-01
- 如何在 SQL 中将 Float 转换为 Varchar 2021-01-01
- 如何根据该 XML 中的值更新 SQL 中的 XML 2021-01-01
- mysql选择动态行值作为列名,另一列作为值 2021-01-01
- 二进制文件到 SQL 数据库 Apache Camel 2021-01-01
- 在多列上分布任意行 2021-01-01
- oracle区分大小写的原因? 2021-01-01
