ここで尋ねられたのと同じ質問があります:
MySQL で CSV データをインポートするときの空の整数フィールドのデフォルト値
csv ファイルを Mysql にインポートすると、「不正な整数値」という警告が表示され続けます。ここで関連するすべての質問/回答を読みました。上記のリンクは私の直接の質問です。しかし、Python 2.7 で与えられた答えを実装しようとしていますが、うまくいかないようです。
以下の私のコードは、上記の投稿からの回答を実装しようとする私の試みです。問題は、Load DATA Local Infile ステートメントで「Set」句を使用するための構文だと思います...MySQL は自動的に空の INT を「0」に変換し、分析が台無しになるので、助けていただければ幸いです。ブランクは null になります。私のコードは次のとおりです。
import MySQLdb
db = MySQLdb.connect(blah, blah, blah)
cursor = db.cursor()
sql = """CREATE TABLE PLAYER(
PLAYER_ID INT,
DATE DATETIME,
BATTING_AVERAGE INT
)"""
cursor.execute(sql)
statement = """LOAD DATA LOCAL INFILE 'path/file.csv'
INTO TABLE PLAYER
COLUMNS TERMINATED BY ','
SET BATTING_AVERAGE = IF(@BATTING_AVERAGE='',NULL,@BATTING_AVERAGE)
IGNORE 1 LINES;"""
このコードが与えるエラーは次のとおりです。
ProgramingError: (1064、「SQL 構文にエラーがあります。5 行目の 'IGNORE 1 Lines の近くで使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください」)