MySQL加载数据infile正好加载了一半的记录

Gra*_*per 7 mysql csv load-data-infile

我正在使用MySQL的LOAD DATA INFILE加载CSV文件,但只加载了一半的行.我测试了不同的文件,每次都会加载一半的行.如何加载所有行?

这是LOAD DATA INFILE SQL:

    LOAD DATA INFILE 
    'C:\\Users\\user\\Dropbox\\wamp\\www\\jobdesc\\data\\banp\\pa_class_posn.csv' 
    INTO TABLE pa_class_posn_temp 
    FIELDS TERMINATED BY ',' 
    OPTIONALLY ENCLOSED BY '"' 
    LINES TERMINATED BY '\n'
    (ID,POSN_CLASS_TITLE,SALARY_GRADE,POSN_CLASS_CODE,
     RECRUITMENT_TIER,EXEMPT_NONEXEMPT,REVISED); 
Run Code Online (Sandbox Code Playgroud)

这是架构:

   CREATE TABLE IF NOT EXISTS `pa_class_posn_temp` (
    `ID` int(4) NOT NULL,
    `POSN_CLASS_TITLE` varchar(36) DEFAULT NULL,
    `SALARY_GRADE` varchar(4) DEFAULT NULL,
    `POSN_CLASS_CODE` varchar(5) NOT NULL,
    `RECRUITMENT_TIER` varchar(6) DEFAULT NULL,
    `EXEMPT_NONEXEMPT` varchar(10) DEFAULT NULL,
    `REVISED` varchar(10) DEFAULT NULL,
    PRIMARY KEY (`ID`),
    UNIQUE KEY `POSN_CLASS_CODE` (`POSN_CLASS_CODE`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Run Code Online (Sandbox Code Playgroud)

这是一个非常简单的(两行)数据集,存储在CSV文件中(只加载一行):

   6682,"A D,Stdnt Hlth&Cnslg Bsn Ops","15","A7078","Tier 1","Exempt","04/19/2013"
   7698,"AVP,Alumni Relations","17","N8004","Tier 2","Exempt","04/19/2013"
Run Code Online (Sandbox Code Playgroud)

每行都有CR/LF行结尾,但您无法在此处看到它们.此外,在完整数据集中没有重复的ID(主键),MySQL不会生成任何警告或错误.

我在Windows 7上使用WAMP.此外,我无法使用LOCAL关键字,因为这将无法在此代码最终生效的生产服务器上运行.

任何帮助或建议都非常感谢.

b.b*_*4rd 10

您是否在Windows下生成了csv文件?如果是,您可能必须使用LINES TERMINATED BY '\r\n'

  • '终止于'\ r \n'的行已经成功了.我错过了\ r.**谢谢!** (4认同)
  • 简直不敢相信.成功了! (2认同)