MariaDB体验2----CSV文件导入

  之前已经安装好MariaDB,现在需要将一份从Sql Server数据库里面导出的CSV文件导入进MariaDB,期间碰到了各种坑,这里记录一下。

  HeidiSQL的导入CSV文件的地方在“工具”栏,也可以直接点击如下按钮。

  点击之后,就弹出如下对话框。

坑1:MariaDB导入CSV文件,要自己建表,建表字段

   因为用惯了Sql Server数据库,Sql Server导入Excel之类的文件都是系统默认sheet名为表名,Excel第一行为表字段名。所以这一点感觉MariaDB特别坑,幸亏才10几个字段。

坑2:导入数据格式不对

   具体错误提示,如下图。

  这个提示牛了,没见过,百度一下。“Incorrect string value: '\xC9\xCF\xBA\xA3,\xC5...' for column 'city' at row 1”。发现大部分人提示说是因为数据库的编码不是UTF8引起的。尝试修改编码为UTF8试试。

alter table positions default character set utf8;

 

   然后查看一下该表的创建语句,

 1 show create table positions;
 2 
 3 
 4 CREATE TABLE `positions` (
 5   `city` varchar(500) DEFAULT NULL,
 6   `companyFullName` varchar(1000) DEFAULT NULL,
 7   `companyId` int(11) DEFAULT NULL,
 8   `companyLabelList` varchar(500) DEFAULT NULL,
 9   `companyShortName` varchar(200) DEFAULT NULL,
10   `companySize` varchar(200) DEFAULT NULL,
11   `businessZones` varchar(500) DEFAULT NULL,
12   `firstType` varchar(200) DEFAULT NULL,
13   `secondType` varchar(200) DEFAULT NULL,
14   `education` varchar(50) DEFAULT NULL,
15   `industryField` varchar(50) DEFAULT NULL,
16   `positionId` int(11) NOT NULL,
17   `positionAdvantage` varchar(500) DEFAULT NULL,
18   `positionName` varchar(500) DEFAULT NULL,
19   `positionLables` varchar(500) DEFAULT NULL,
20   `salary` varchar(50) DEFAULT NULL,
21   `workYear` varchar(50) DEFAULT NULL,
22   PRIMARY KEY (`positionId`)
23 ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='职位表'

 

  OK,没问题了,编码对了,再次导入,又报错了。

坑3:表字段与CSV文件要导入的字段数量不对

  改完第二步,接着继续导入,又报错了。

  “Row 1 doesn't contain data for all columns”,从英文描述来看,说的是行1没有包含所有列数据。开始有点理解是什么意思,搜了一下百度,才发现表里面的字段只有16个,但CSV文件里面的列却有17个。不知道在创建字段的时候是怎么创建的,竟然少了个字段。修改之后继续导入,这次导入成功了。一看数据,怎么只有一条!!!

坑4:字段分隔符

   HeidiSQL在导入文件的时候,默认使用的分隔符为“;”,而CSV文件字段之间的分隔符为“,”,所以所有的数据都导入到一个字段里面去了。

  字段分隔符需要修改成“,”,另外需要注意行分隔符是不是“\r\n”。“\r\n”的含义就是回车换行。还可以选择导入前是不是要清空目标表等条件。导入完成之后查一下数据,OK,数据正确。

  CSV数据导入结束,搞了快2个小时,好歹成功导入数据了。下一篇写啥呢?暂定写图表的运用或者概率和统计吧。曾经的我,数学那是刚刚的,现在有点小后悔,为什么大学的时候没有报数学专业呢?现在想重新把概率和统计、高等数学、线性代数捡起来,感觉困难重重啊。

posted @ 2017-09-10 18:36  疯子王  阅读(1446)  评论(0)    收藏  举报