将数据从测试文件导入mysql数据库

时间:2016-02-09 05:37:36

标签: mysql database file

我知道我的问题已经存在已回答的问题,但到目前为止,我还没有找到一个100%回答我的问题。

无论如何,有没有办法[在这里插入标题]其中[分隔符]是字符数?我想说的是......例如,文本文件有三个数据:名称,年龄和性别。格式看起来像这样......

  

约瑟夫____ 18_M(假装下划线是空格)

在上面的示例中,名称有10个字符,年龄为3,性别只有一个。

在sql中是否有一个方法可以获取文件中的前10个字符,将其放在数据库中,然后是接下来的3个字符,依此类推......?

感谢。

1 个答案:

答案 0 :(得分:0)

您应该使用mysql的load data infile命令而不指定字段分隔符或可选地由参数括起来的字段 - 但请确保该文件不是unicode:

  

如果FIELDS TERMINATED BY和FIELDS ENCLOSED BY值都是   empty(''),使用固定行(nondelimited)格式。带固定排   格式,字段之间没有使用分隔符(但你仍然可以使用   行终止者)。而是使用以下方式读取和写入列值   字段宽度足以容纳字段中的所有值。对于   TINYINT,SMALLINT,MEDIUMINT,INT和BIGINT,字段宽度为4,   无论声明显示什么,分别为6,8,11和20   宽度是。

     

LINES TERMINATED BY仍用于分隔线条。如果一条线   不包含所有字段,其余列设置为其   默认值。如果您没有行终止符,则应设置   这个''。在这种情况下,文本文件必须包含所有字段   每一行。

     

固定行格式也会影响NULL值的处理,如上所述   后面。

     

注意如果使用多字节,则固定大小格式不起作用   字符集。

将名称声明为varchar(10),age可能为varchar(3),或者您可以尝试使用unsigned tinyint,gender作为char(1)。