在MySQL中将文本文件数据导入到行中
我有一个文本文件,其中包含以下格式的行: com1,系统访问,最小密码,1在MySQL中将文本文件数据导入到行中,mysql,sql,Mysql,Sql,我有一个文本文件,其中包含以下格式的行: com1,系统访问,最小密码,1 com1,系统访问,MaximumPasswordAge,42 com1,系统访问,最小密码长度,7 我希望以以下格式将此数据导入3行: ID列中的“com1”,Audit\u Type列中的“System Access”,系统设置列中的“MinimumPasswordAge”,以及实际值列中的“1” 我在Windows7SP1中使用MySQL查询浏览器 创建表格以保存数据 创建CSV文件。不要包含字段标题 打开MySQ
com1,系统访问,MaximumPasswordAge,42
com1,系统访问,最小密码长度,7
我希望以以下格式将此数据导入3行:
ID
列中的“com1”,Audit\u Type
列中的“System Access”,系统设置列中的“MinimumPasswordAge”,以及实际值列中的“1”
我在Windows7SP1中使用MySQL查询浏览器
创建表格以保存数据
创建CSV文件。不要包含字段标题
打开MySQL查询浏览器并运行SQL:
注意:
如果已在Windows系统上生成文本文件,则可能必须使用以“\r\n”
结尾的行来正确读取该文件,因为Windows程序通常使用两个字符作为行终止符
更新1
如您所见,81条记录中只有3条记录被插入
com1,系统访问,最小密码,1
com2,系统访问,最小密码,1
com3,系统访问,最小密码,1
其他人失败了
com1,事件审计,AuditSystemEvents,0
com2,Kerberos策略,MaxTicketAge,10
com3,系统访问,新管理员或名称管理员,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)
)
我尝试了以下代码:将数据本地填充'C:/Users/student/Downloads/SecAudit.txt'加载到以“,”结尾的表系统设置字段中,行以“\r\n”结尾(ID、审核类型、系统设置、实际值);但81行中只有3行被导入。为什么会这样?您能否在问题中指定至少两行未插入的内容?可能它们的格式有问题,因为81行中有3行被插入;“com2,系统访问,最小密码,1”;插入了“com3,系统访问,MinimumPasswordAge,1”未添加的行示例为“com1,事件审核,AuditSystemEvents,0”和“com2,Kerberos策略,MaxTicketAge,10”和“com3,系统访问,NewAdministratorName,Administrator”“@LamakDaruwala生成了哪些错误?请检查
ID
是否设置为表的主键。如您所见,表中已经存在未插入的记录的ID
。
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)
)