之前已经安装好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. Spring核心--IOC

    先说说Spring框架 Spring框架 Spring框架的作用 Spring 的核心(IOC功能) SpringAOP功能 原有的业务流程:请求->servlet-->service-- ...

  2. RF+Appium框架自动化测试系列一之(Mac下Appium环境搭建)万事开头难

    消失了3个月,有一段时间没来园子更新博客了,各位看官见谅哈哈,消失是因为刚换了工作环境没外网,好多笔记没能及时的记录分享,以后有时间慢慢补上吧,这段时间主要接触了移动端app的自动化测试,公司为了快速 ...

  3. cmd命令行进入DOS方式编译运行C语言程序实现字符串转换

    需求:输入一个字符串(长度小于50),然后过滤掉所有的非数字字符,得到由数字字符组成的字符串,将其转化为double型结果输出(4位小数). 源程序: #include<stdio.h>i ...

  4. 庖丁解牛——CY7C68013A开发框架

    大家好,好久不见了,距离上次发文章都有两个多星期了,非常高兴同时也非常感谢你们能一直关注我.之前在公众号上收到网友的消息,其大概意思就是问我能不能出点USB干货,为此我就把第二篇--解密USB2.0数 ...

  5. 在 overlay 中运行容器 - 每天5分钟玩转 Docker 容器技术(51)

    上一节我们创建了 overlay 网络 ov_net1,今天将运行一个 busybox 容器并连接到 ov_net1: 查看容器的网络配置: bbox1 有两个网络接口 eth0 和 eth1.eth ...

  6. ue4 C++ 编程 通过三个点的位置算出夹角

    const FVector2D& Pt1 = 第一个点的位置; const FVector2D& Pt2 = 第二个点的位置; float EdgeRadians1 = FMath:: ...

  7. python--DenyHttp项目(1)--GUI:tkinter☞ module 'tkinter' has no attribute 'messagebox'

    AttributeError: module 'tkinter' has no attribute 'messagebox' improt tkinter from tkinter import * ...

  8. numastat的理解

    numa的统计数据及理解如下, [root@localhost kernel]# numastat                     node0           node1numa_hit ...

  9. php并发加锁示例

    在工作项目中,会遇到一些php并发访问去修改一个数据问题,如果这个数据不加锁,就会造成数据的错误.下面我将分析一个财务支付锁的问题.希望对大家有所帮助. 1 没有应用锁机制 1.1 财务支付简化版本代 ...

  10. 用netstat查看网络状态详解

    --用netstat查看网络状态详解 -----------------------------2014/06/11 一.Linux服务器上11种网络连接状态:                     ...