我有同样的问题在这里问:
将 csv 文件导入 Mysql 时,我不断收到警告“整数值不正确”。我在这里阅读了所有相关的问题/答案,上面的链接是我的直接问题。但我正在尝试实现 Python 2.7 中给出的答案,但我似乎无法让它工作。
我下面的代码是我尝试实现上述帖子的答案。我认为问题是在我的 Load DATA Local Infile 语句中使用“Set”子句的语法......我非常感谢任何帮助,因为 MySQL 会自动将空 INT 转换为“0”,这会扰乱我的分析,因为我想要空白为空。我的代码是:
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 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册,以获取在 'IGNORE 1 Lines at line 5 附近使用的正确语法”)