我正在尝试学习如何通过Python运行MySQL。这段代码除了打开数据库并尝试将数据加载到其中的一个空表之外,什么也不做。
import MySQLdb
connection = MySQLdb.Connect(host='localhost', user='xx', passwd='xx', db='xx')
cursor = connection.cursor()
query = "LOAD DATA INFILE '/APath/aFile' INTO TABLE xx FIELDS TERMINATED BY '\r\n'"
cursor.execute( query )
connection.commit()它会失败,并显示以下错误:
File "test0.py", line 7, in <module>
cursor.execute( query )
File
"/Library/Python/2.7/site-packages/MySQL_python-1.2.4b4-py2.7-macosx-10.7-intel.egg/MySQLdb/cursors.py",
line 202, in execute
self.errorhandler(self, exc, value)
File
"/Library/Python/2.7/site-packages/MySQL_python-1.2.4b4-py2.7-macosx-10.7-intel.egg/MySQLdb/connections.py",
line 36, in defaulterrorhandler
raise errorclass, errorvalue
_mysql_exceptions.DataError: (1406, "Data too long for column 'xkey'
at row 1"xkey将是表中的第一列,因此它会立即失败。我假设我的终止指令是错误的,那么我如何看到它试图加载到该列中的内容,以便我可以修复它?如果我错了,我该怎么做呢?
发布于 2016-01-07 13:17:23
抱歉:它似乎真的不需要字段,而是以'\r‘结尾的行
但是,我认为字段终止符是'\r',所以我不明白为什么留下以‘\r’结尾的字段,即使我添加了正确的行终止符,仍然会产生错误。如果我只留下线条的一部分,它就会起作用。
https://stackoverflow.com/questions/34636268
复制相似问题