之前已经安装好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;

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

 show create table positions;

 CREATE TABLE `positions` (
`city` varchar(500) DEFAULT NULL,
`companyFullName` varchar(1000) DEFAULT NULL,
`companyId` int(11) DEFAULT NULL,
`companyLabelList` varchar(500) DEFAULT NULL,
`companyShortName` varchar(200) DEFAULT NULL,
`companySize` varchar(200) DEFAULT NULL,
`businessZones` varchar(500) DEFAULT NULL,
`firstType` varchar(200) DEFAULT NULL,
`secondType` varchar(200) DEFAULT NULL,
`education` varchar(50) DEFAULT NULL,
`industryField` varchar(50) DEFAULT NULL,
`positionId` int(11) NOT NULL,
`positionAdvantage` varchar(500) DEFAULT NULL,
`positionName` varchar(500) DEFAULT NULL,
`positionLables` varchar(500) DEFAULT NULL,
`salary` varchar(50) DEFAULT NULL,
`workYear` varchar(50) DEFAULT NULL,
PRIMARY KEY (`positionId`)
) 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个小时,好歹成功导入数据了。下一篇写啥呢?暂定写图表的运用或者概率和统计吧。曾经的我,数学那是刚刚的,现在有点小后悔,为什么大学的时候没有报数学专业呢?现在想重新把概率和统计、高等数学、线性代数捡起来,感觉困难重重啊。

MariaDB体验2----CSV文件导入的更多相关文章

  1. SQL Server:把CSV文件导入到SQL Server表中

    有时候我们可能会把CSV中的数据导入到某个数据库的表中,比如做报表分析的时候. 对于这个问题,我想一点也难不倒程序人员吧!但是要是SQL Server能够完成这个任务,岂不是更好! 对,SQL Ser ...

  2. 把CSV文件导入到SQL Server表中

    保存数据库数据直接查询select * from tableName 在数据表格的左上角右击——将结果另存为选择路劲保存好的就是.csv格式的数据 有时候我们可能会把CSV中的数据导入到某个数据库的表 ...

  3. C# ASP.NET CSV文件导入数据库

    原文:C# ASP.NET CSV文件导入数据库 using System; using System.Collections.Generic; using System.Text; using Sy ...

  4. [转]csv文件导入Mysql

    本文转自:https://blog.csdn.net/quiet_girl/article/details/71436108 本篇博客主要讲将csv文件导入Mysql的方法(使用命令行). Step1 ...

  5. 将CSV文件导入到hive数据库

    将csv文件导入hive后出现了所有的字段只显示在新建的表的第一个字段中,后面的字段全是null. 出现这种的原因是hive以行分隔数据,需要修改为按逗号'  ,  ‘ 进行分隔读取, 具体操作如下, ...

  6. MySql csv文件导入导出

    一.导出到csv(本地导出) 通过mysql客户端shell连接到服务器,选择使用的数据库,输入sql代码: select * from test_info into outfile '/tmp/te ...

  7. 2017年4月8日Office 365 使用CSV文件导入邮件组

    国内版 第一步: Import-Module msonline Connect-MsolService 输入用户名密码 第二步: Get-MsolUser" 第三步: Set-Executi ...

  8. csv文件导入到mysql

    如何将csv文件导入到mysql数据库呢,方法有很多但最简单粗暴的方法还是用sql语句啦,像下面这样. LOAD DATA LOCAL INFILE 'csv文件路径' INTO TABLE 数据表名 ...

  9. CSV文件导入导出MySQL

    使用SQLyog 工具导入文件数据到MySQL: Excel文件导入导出: 需要驱动:Microsoft Office 2007驱动 导入需要注意的问题:1.Excel里数值列,默认导入会变成浮点型. ...

  10. Laravel 5使用Laravel Excel实现Excel/CSV文件导入导出的功能详解

    1.简介 本文主要给大家介绍了关于Laravel 5用Laravel Excel实现Excel/CSV文件导入导出的相关内容,下面话不多说了,来一起看看详细的介绍吧. Laravel Excel 在 ...

随机推荐

  1. SQL SERVER Buffer Pool扩展

    Buffer Pool扩展简介 Buffer Pool扩展是buffer pool 和非易失的SSD硬盘做连接.以SSD硬盘的特点来提高随机读性能. 在Buffer Pool 扩展之前,SQL Ser ...

  2. JavaScript语言精粹-读书笔记

    前言:很久之前读过一遍该书,近日得闲,重拾该书,详细研究一方,欢迎讨论指正. 目录: 1.精华 2.语法 3.对象 4.函数 5.继承 6.数组 7.正则表达式 8.方法 9.代码风格 10.优美的特 ...

  3. 11. leetcode 283. Move Zeroes

    Given an array nums, write a function to move all 0's to the end of it while maintaining the relativ ...

  4. poj 3253 Fence Repair 优先队列

    poj 3253 Fence Repair 优先队列 Description Farmer John wants to repair a small length of the fence aroun ...

  5. swift3.0 移除当前页面的前一个页面

    用的是以下的跳转方式 self.navigationController?.pushViewController(viewController, animated: true) 在当前页面移除方式 s ...

  6. vue指令v-cloak示例解析

    v-cloak会隐藏未编译的 Mustache 标签,直至实例准备完毕: [v-cloak] { display: none; } <div v-cloak> {{ message }} ...

  7. PyCharm中Directory与Python package的区别

    对于Python而言,有一点是要认识明确的,python作为一个相对而言轻量级的,易用的脚本语言(当然其功能并不仅限于此,在此只是讨论该特点),随着程序的增长,可能想要把它分成几个文件,以便逻辑更加清 ...

  8. Sublime Text3快捷键

    Ctrl+D 选词 (反复按快捷键,即可继续向下同时选中下一个相同的文本进行同时编辑)Ctrl+G 跳转到相应的行Ctrl+J 合并行(已选择需要合并的多行时)Ctrl+L 选择整行(按住-继续选择下 ...

  9. CentOS 6.5安装JDK、Tomcat、Mysql

    安装JDK 1.下载JDK7 下载jdk-7u79-linux-x64.tar.gz 百度网盘下载地址:https://pan.baidu.com/s/1c1JZo2k 在Linux上新建/usr/j ...

  10. NOIP2000提高组 单词接龙

    题目描述 单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的"龙"(每个单词都最多在"龙" ...