Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python MySQLdb加载本地填充问题_Python_Mysql - Fatal编程技术网

Python MySQLdb加载本地填充问题

Python MySQLdb加载本地填充问题,python,mysql,Python,Mysql,问题很简单。当我执行以下操作时,我会得到不同的结果,这取决于我是从MySQL控制台运行它还是从使用MySQLdb的Python脚本内部运行它: LOAD DATA LOCAL INFILE '/tmp/source.csv' INTO TABLE test FIELDS TERMINATED BY '|' IGNORE 1 LINES; Console提供以下结果: 记录:35002已删除:0已跳过:0警告:0 Python(via.info())返回以下内容: 记录:34977已删

问题很简单。当我执行以下操作时,我会得到不同的结果,这取决于我是从MySQL控制台运行它还是从使用MySQLdb的Python脚本内部运行它:

LOAD DATA LOCAL INFILE '/tmp/source.csv' INTO TABLE test 
FIELDS TERMINATED BY '|' 
IGNORE 1 LINES;
Console提供以下结果:

  • 记录:35002已删除:0已跳过:0警告:0
Python(via.info())返回以下内容:

  • 记录:34977已删除:0已跳过:0警告:8
总之,相同的源文件,相同的SQL请求,不同的结果

从控制台中,我可以“显示警告”,从而更好地处理哪些记录导致了问题以及为什么会出现问题,但从Python中,我无法确定如何做到这一点,更重要的是,无法确定问题的原因是什么

有什么建议吗

  • MySQL服务器“5.1.41-3ubuntu12.1”
  • Python“2.6.5”
  • 表是MyISAM

加载数据后,执行

SELECT @@warning_count;
检查是否大于0。 如果是,则执行

SHOW WARNINGS;
并转储结果(返回3列:级别、代码、消息)或引发异常。
您可以执行这两条语句,就像执行其他每一条select*from。。。查询。

加载数据后,执行

SELECT @@warning_count;
检查是否大于0。 如果是,则执行

SHOW WARNINGS;
并转储结果(返回3列:级别、代码、消息)或引发异常。
您可以执行这两条语句,就像执行其他每一条select*from。。。查询。

您是否尝试过隔离一条给出不同行为的行?你可以平分(分割一个区域)来分离一条线,这条线在程序员时间的O(log(n))中给出不同的结果。。。对最后一列值非常敏感,特别是当它们为空时。只需更改列顺序即可对同一数据文件起作用。。。但是像大多数事情一样,总是有一个低级的解决方法。你有没有尝试过分离出一条给出不同行为的线?你可以平分(分割一个区域)来分离一条线,这条线在程序员时间的O(log(n))中给出不同的结果。。。对最后一列值非常敏感,特别是当它们为空时。只需更改列顺序即可对同一数据文件起作用。。。但和大多数事情一样,总是有一个低级的解决方法。在查询失败后,选择@@warning\u count;,我发现在MySQLdb或更具体的_mysql中,您需要使用conn.warning_count()来获取警告计数,否则您可能会得到一个2014命令不同步错误。查询失败后,请选择@@warning_count;,我发现在MySQLdb或更具体地说_mysql中,您需要使用conn.warning_count()来获取警告计数,否则您可能会得到一个不同步的错误。