3

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

com1,System Access,MinimumPasswordAge,1
com1,System Access,MaximumPasswordAge,42
com1,System Access,MinimumPasswordLength,7

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

列中的“com1”,ID列中的
“系统访问权限”,Audit_Type列中的
“MinimumPasswordAge”,System_Setting列中的
“1” Actual_Value

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

4

1 回答 1

2
  1. 创建表来保存您的数据。

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

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


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,System Access,MinimumPasswordAge,1
com3,System Access,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) 
)
于 2012-09-03T01:09:27.033 回答