【问题标题】:MySQL LOAD DATA with multiline dataMySQL LOAD DATA 多行数据
【发布时间】:2011-10-27 09:58:55
【问题描述】:

Mysql 的 LOAD DATA 命令有问题。

使用简单的数据,它可以正常工作。

当我尝试加载很长的数据,并且有一个跨越多行的字段时,它会失败。

这是我的输入数据。字段以制表符分隔。

1   2008-06-27 12:00:00 Type-Safe Enumerations  title Fr    5   
...line 1..
...line 2....   
    \N  2002-10-01 12:00:00 END-OF-THE-LINE
2   2008-06-27 12:00:00 Class for constants Classe pour constantes  1   
line 1...
..line 2..
    \N  2002-10-01 12:00:00 END-OF-THE-LINE
4   2008-06-27 12:00:00 Another Énumérations    5   
line 1
line 2
    \N  2002-10-01 12:00:00 END-OF-THE-LINE
5   2008-06-27 12:00:00 And Another Énumérations    5   
line 1
line 2
    \N  2002-10-01 12:00:00 END-OF-THE-LINE

这是 LOAD DATA 命令:

>LOAD DATA LOCAL INFILE "TopicInfileText2.dat" INTO TABLE Topic 
     LINES TERMINATED BY "END-OF-THE-LINE";

目标表:

CREATE TABLE Topic (    
    Id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,
    LastEdit TIMESTAMP NOT NULL,             
    TitleEnglish VARCHAR(75) NOT NULL,
    TitleFrench VARCHAR(75),
    ChapterId SMALLINT NOT NULL References Chapter,             
    BodyEnglish TEXT NOT NULL,             
    BodyFrench TEXT,             
    CreationDate DATETIME NOT NULL,
    PRIMARY KEY (Id)
);

来自 MySQL 的警告

| Incorrect integer value: '
2' for column 'Id' at row 2 |
| Incorrect integer value: '
4' for column 'Id' at row 3 |
| Warning | 1366 | Incorrect integer value: '
5' for column 'Id' at row 4 |
| Warning | 1366 | Incorrect integer value: '
' for column 'Id' at row 5  |

【问题讨论】:

    标签: mysql load multiline


    【解决方案1】:

    错误出现在 LOAD DATA 命令中。我缺少一个换行符。

    应该是:

    LOAD DATA LOCAL INFILE "TopicInfileText2.dat" INTO TABLE 
        Topic LINES TERMINATED BY "END-OF-THE-LINE\n";
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-18
      • 1970-01-01
      • 2017-08-15
      • 2015-03-11
      • 2012-09-13
      • 2021-10-02
      • 1970-01-01
      相关资源
      最近更新 更多