在MySQL中将文本文件数据导入到行中

在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,系统访问,最小密码,1
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) 
    )