将文本文件数据导入MySQL中的行

时间:2012-09-03 01:05:52

标签: mysql sql

我有一个文本文件,其中包含以下格式的行:

com1,System Access,MinimumPasswordAge,1
com1,系统访问,MaximumPasswordAge,42
com1,系统访问,MinimumPasswordLength,7

我希望以下列格式将这些数据导入3个单独的行:

“{1}}列中的”com1“,ID列中的”系统访问权限“,Audit_Type列中的”MinimumPasswordAge“和
System_Setting列中的“1”。

我在Windows 7 SP1中使用MySQL查询浏览器。

1 个答案:

答案 0 :(得分:2)

  1. 创建表格以保存您的数据。

  2. 创建CSV文件。不要包含字段标题。

  3. 打开MySQL查询浏览器并运行SQL:


  4. load data local infile 'fullpath.csv' into table tableName
    fields terminated by ','
    lines terminated by '\n'
    (ID, Audit_Type, System_Setting, Actual_Value);
    

    注意: 如果您在Windows系统上生成了文本文件,则可能必须使用LINES TERMINATED BY '\r\n'来正确读取文件,因为Windows程序通常使用两个字符作为行终止符。


    更新1

    如您所见,仅插入3 out of 81条记录

    com1,System Access,MinimumPasswordAge,1
    com2,系统访问,MinimumPasswordAge,1
    com3,系统访问,MinimumPasswordAge,1

    其他人失败

    com1,Event Audit,AuditSystemEvents,0
    com2,Kerberos Policy,MaxTicketAge,10
    com3,系统访问,NewAdministratorNameAdministrator,1

    这是因为您将列ID设置为主键。 com1, com2, com3已经存在于桌面上。 主键按照定义唯一。能够插入所有行的最佳方法是创建另一个列,该列可以自动递增并将其设置为主键。

    Create Table system_settings
    (
        RecordID int NOT NULL AUTO_INCREMENT,
        ID VARCHAR(30),
        Audit_Type VARCHAR(30), 
        System_Setting VARCHAR(30), 
        Actual_Value int,
        CONSTRAINT table_PK PRIMARY KEY (RecordID) 
    )