【问题标题】:LOAD DATA INFILE syntax errorLOAD DATA INFILE 语法错误
【发布时间】:2010-11-16 17:45:24
【问题描述】:

查询:load data infile 'systemmessage.txt' ignore into table systemmessage (message) lines starting by 'a,' terminated by '\0' ignore 1 lines

在“开始于”的行附近出现语法错误。 如果我删除“开始于”部分,则错误现在是“终止于”。如果我也将其删除,则错误是“忽略 1 行”。 到底哪里有问题??文件存在,表存在,如果我删除它加载的所有检查,但数据错误。

【问题讨论】:

  • 再次准备您的 systemmessage.txt 以完全遵循 mysql 规范 - dev.mysql.com/doc/refman/5.1/en/load-data.html
  • OMG 问题不在 systemmessage.txt 中!这是一个 SQL 语法错误!我已经准备好解决这个令人难以置信的愚蠢问题了,你给我推荐了一些我在过去几个小时里已经阅读了数百次的东西!无论如何,我终于设法克服了这个问题,但比过去一周浪费了更多的神经......
  • 你应该傻傻地证明你的 systemmessage.txt 100% 符合 mysql 规范,你是否尝试只插入一行(单条记录)以确保它至少适用于 1 行?跨度>

标签: mysql load-data-infile


【解决方案1】:

您只需要将列列表移动到 SQL 语句的末尾即可。

如手册中所述,需要在(可选)列列表之前指定格式信息(以开头的行、跳过 1 行等):

http://dev.mysql.com/doc/refman/5.1/en/load-data.html

这是固定查询:

load data infile '/tmp/systemmessage.txt' 
ignore into table systemmessage 
lines starting by 'a,' 
terminated by '\0' 
ignore 1 lines
(message)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-24
    • 2018-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-08
    相关资源
    最近更新 更多