问题很简单。当我执行以下操作时,我会得到不同的结果,具体取决于我是从MySQL控制台运行它还是从使用MySQLdb的Python脚本中运行它:
LOAD DATA LOCAL INFILE '/tmp/source.csv' INTO TABLE test
FIELDS TERMINATED BY '|'
IGNORE 1 LINES;
控制台提供以下结果:
Python(通过.info())返回以下内容:
总而言之,相同的源文件,相同的SQL请求,不同的结果。
从控制台我可以'显示警告'以更好地处理哪些记录导致问题以及为什么但是从Python我无法确定如何执行此操作或更重要的是问题的原因可能是什么。
有什么建议吗?
答案 0 :(得分:1)
加载数据后,执行
SELECT @@warning_count;
检查是否大于0。 如果是执行
SHOW WARNINGS;
并转储结果(返回3列:Level,Code,Message)或抛出异常。 您可以像其他select * from ... query一样执行这两个语句。