2

次の形式のデータを含むデータファイルがあります

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

4

0 に答える 0