次の形式のデータを含むデータファイルがあります
asd,12,asd,asd,12,adsd,,asdas,None
auto increment
データファイルのようにintid
と残りの列を持つmysqlのテーブルがあります。
今、私は試しています
query2 = """LOAD DATA LOCAL INFILE 'tmp.txt'
REPLACE INTO TABLE mytable
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\\n'
(a1,a2,a3,a4,a5,a6,a7,a8,a9)
"""
conn = mysql.connector.connect(user=self.db_config.dbusername, password=self.db_config.dbpassword,
host=self.db_config.dbhost,
database='something', client_flags=[ClientFlag.LOCAL_FILES])
cursor = conn.cursor()
cursor.execute(query2)
conn.commit()
cursor.close()
conn.close()
私が得るエラーは
class 'mysql.connector.errors.InterfaceError'> 操作の実行に失敗しました。整数が必要です
自動インクリメント ID が存在するため、SET ID=None
いくつかの投稿で示唆されているように追加しようとしましたが、結果は同じでした.tmp.txt はスクリプトと同じ場所にあります.この応答は mysql サーバーによって送信されています.
それMYSQL Server is on amazon
は違いを生むことです。
何がこれを引き起こしているのか、またはどのようにデバッグできるのか考えていますか?
深く掘り下げました。
エラーが発生するのは
execute method in /usr/local/lib/python2.7/site-packages/mysql/connector/cursor.py is called with the query as parameter
cmd_query in /usr/local/lib/python2.7/site-packages/mysql/connector/protocol.py is called
_handle_resultset in /usr/local/lib/python2.7/site-packages/mysql/connector/protocol.py is called
read_lc_int in /usr/local/lib/python2.7/site-packages/mysql/connector/utils.py is called which return (buf,None)
そのため、関数は失敗します。これは、クエリが送信され_handle_resultset
たときにサーバーから返される応答と確実に関係があります。LOAD DATA