【问题标题】:Python3 cursor.execute correct syntaxPython3 cursor.execute 正确的语法
【发布时间】:2020-06-29 18:44:28
【问题描述】:

尝试使用 python3 和本地 csv 文件插入一些数据 - 这种语法有什么问题? python一直在说

mysql.connector.errors.ProgrammingError: 1064 (42000): 你有一个 SQL 语法错误;检查与您对应的手册 MySQL 服务器版本,以便在 ' FIELDS 附近使用正确的语法 在第 1 行由 ','' 终止

cursor.execute("""LOAD DATA LOCAL INFILE '/home/user/mongo_exported_users.csv' INTO TABLE users IGNORE 1 LINES, FIELDS TERMINATED BY ','""")

【问题讨论】:

    标签: mysql python-3.x load-data-infile


    【解决方案1】:

    根据documentationFIELDS TERMINATED BY子句之前不能有逗号,并且IGNORE # LINES子句必须在FIELDS TERMINATED BY子句之后:

    cursor.execute("""LOAD DATA LOCAL INFILE '/home/user/mongo_exported_users.csv'
        INTO TABLE users FIELDS TERMINATED BY ',' IGNORE 1 LINES""")
    

    【讨论】:

    • 即便如此... _mysql_connector.MySQLInterfaceError: 你的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“FIELDS TERMINATED BY ',”附近使用正确的语法
    • 我明白了。然后修复。
    • 发生了什么变化?你能澄清一下吗?
    • 正如我在回答中添加的那样,“IGNORE # LINES 子句必须在 FIELDS TERMINATED BY 子句之后”。
    • 请参阅documentation,其中显示了LOAD DATA 语句的正确语法。 ESCAPED BY 只是FIELDS 子句可用的选项之一,因此您不应在TERMINATED BY 选项之后再次编写FIELDS。即LOAD DATA LOCAL INFILE '/home/user/mongo_exported_users.csv' INTO TABLE users FIELDS TERMINATED BY ',' ESCAPED BY '"' IGNORE 1 LINES;
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-27
    • 2019-08-23
    • 1970-01-01
    • 1970-01-01
    • 2019-11-26
    • 1970-01-01
    相关资源
    最近更新 更多