点击import:则数据导入表格成功,结果如下所示

导入的MySQL数据错列问题:

当导入fct_sales_item的时候发现,数据存在一个错列有问题。也就是对比MySQL数据库原表的列的顺序,会发现该表的表头与数据库中原表的字段列不一样。

当导入数据时候,excel会对原表头进行重新排序。

本案例中:导入的数据表头是按字段名称的英文字母的升序顺序。而不是按原来数据表中的字段顺序。这会导致当导入的数据出现格式错误无法导入。

当导入另一个表fct_sales:

系统会报一个错误,把salesno这列数据当作了dimdateid,所以报格式错误。

导入到excel的字段顺序按表头名称进行了重新排序,所以会造成把原列中的salesno在导出到excel数据的新列中当作为dimdateID,从而导致原来salesno中的数据内容为字符与dimdateID格式中的日期时间型冲突。

如何解决数据错列的问题:

从这个问题来看,应该是excel for mysql这个插件的一个严重的BUG。解决问题是对导入的数据的列名进行相应的重新命名,保证表头的字段顺序是期望的顺序。在导出的数据前临时生成一个临时表,以顺序的字母开始取原字段取个别名。以导出fct_sales的数据为案例。

首先,重新在数据库中创建一个表,给相应顺序的字段重新命名,在前面增加一个字母顺序的别名(也可以使用像字母加上字母顺序的写法,例如:t1,t2,t3,…….。

create table temp_fct_sales

as

select ID as a_id

,salesNo as b_sales_no

,dimdateID as c_dimdateID

,dimShopID as d_dimShopID

,dimMemberID as f_dimMemberID

,QTY as g_qty

,AMT as h_amt

from fct_sales;

如下图所示:

这个时间导出表为:temp_fct_sales

点击导出数据到excel

则数据可以正确导出到excel中

数据从excel中导入到MySQL中:

假设excel表中有以下数据要导入到数据库中

数据导入的操作顺序如下:

第一步:创建数据表。在数据库中新建一个用于接收导入数据表的。在创建表以后,当导入数据的时候。Excel for mysql插件也会根据表字段名对字段进行重新排序。所以也会存在导入数据的列与定义表的列字段错行,所以为了保持二者一致,也创建在创建表的时候按导入数据列的顺序加个“带有顺序的前缀”。

如下所示:

create table temp_order (a_order_id varchar(30)

,b_merchant_id int

,c_member_id int

,d_create_time datetime

,f_sale_amt float(8,3)

,f_sale_qty float(8,3)

,f_sale_promo float(8,3));

创建成功后,excel 连接中使用刷新一下,可以看到新增加的表:

第二步:选中要导入excel的数据。对要导入的数据一定要进行全选。

第三步:选中要导入的表。然后选中要把数据导入到对应的数据库的表。这个时间看到append excel data to table 把excel数据导入到数据表中的选项是可见的,不是灰色了。

第四步:导入数据

点击导入excel数据到数据表的选项,出现如下的界面。

把first row contains column names:这个选项先上,系统会自动进行一对一匹配。下面表的列的顺序是按之前创建表的字段顺序【这个顺序在创建表的时候根据excel的列是对应创建的】。如果首行不是字段名,就可以不用勾选,默认是没有勾选上的。

END.

本文整理自爱数据学院中的问答

更多精彩问答,进入下方社区网站查看

http://www.lovedata.cn/invitation

excel导入mysql后会多了0_Excel导入MySQL数据出现相关推荐

  1. linux停止mysql后又自己启动,Linux上 mysql启动/停止/重启/开机启动/开机禁止启动...

    1.查看mysql版本 方法一:status; 方法二:select version(); 2.Mysql启动.停止.重启常用命令 a.启动方式 1.使用 service 启动: [root@loca ...

  2. Centos7用yum安装完mysql后没有mysqld的问题(mysql中三个包都装过了)

    我想在CentOS7上使用MySQL.使用yum安装MySQL软件包. [root@node01 ~]# yum install mysql mysql-* 然后, [root@node01 ~]# ...

  3. linux安装完mysql后如何初始化,linux yum安装mysql后要注意的一些初始化问题linux服务器应用 -电脑资料...

    1. 配置开机启动服务 /sbin/chkconfig httpd on [设置apache服务器httpd服务开机启动] /sbin/chkconfig –add mysqld [在服务清单中添加m ...

  4. mac安装mysql后找不到_Mac安装MySQL步骤及遇到的问题

    安装 MySQL下载地址,下载好后直接安装. 打开控制台,输入mysql --version查看MySQL版本. 如果提示-bash:mysql:command not found,是因为由于系统默认 ...

  5. 安装mysql后服务里面没有_安装mysql后没有看到服务怎么办?

    我就废话不多说了,大家还是直接看代码吧~create or replace function aa1(a1 integer[],a2 bigint) returns void AS $$declare ...

  6. emq认证mysql后如何使用_emq服务器开启mysql验证教程

    在上一篇博客中我们写了ubuntu16.04中安装emq服务器教程的,当我们安装好zip的emq服务器之后.在emqttd目录下的emq文件夹中,有emq.conf 文件夹.vim emq.conf ...

  7. 怎么导入mysql示例_MySQL命令行导出导入数据库实例详解

    1,进入MysqL目录下的bin文件夹:cd MysqL中到bin文件夹的目录 如我输入的命令行:cd C:\Program Files\MysqL\MysqL Server 5.5\bin (或者直 ...

  8. mysql导出数据库报错,navicat 导入导出数据库报错的解决

    在使用navicat导入导出数据功能时,导出没问题,导入总是报错,还遇到了中文乱码.在网上查了很多资料,比如使用了navicat的数据传输功能,但仍然报错,弄了几个小时都没解决. 最后换了种思路,我直 ...

  9. mysql装完后navicat无法连接_重装mysql后导致Navicat连接失败

    今天重装了mysql数据库,然后再使用navicat去连接数据库的时候,一直报错 1251 Client does not support authentication protocol reques ...

最新文章

  1. 易观与用友推出云融合产品“智能用户运营”,掀开数字营销技术新篇章
  2. 银联基于OpenStack的金融私有云建设实践
  3. python操作mysql事务提交_python连接mysql并提交mysql事务示例
  4. 【算法】学习笔记(4):分治思想 归并排序
  5. JS获取整个HTML网页代码 - Android 集美软件园 - 博客频道 - CSDN.NET
  6. java(15)-策略模式(Strategy Pattern)
  7. Leetcode 750.角矩形的数量
  8. bzoj 2743spoj DQUERY - D-query
  9. linux chmod、chown命令不起作用
  10. MDui库又一次更新了,重构了绘制的相关逻辑
  11. PAT甲级 A1099
  12. PCIe是如何工作的——How PCI Express Works
  13. 浏览器和服务器的区别
  14. canvas快速实现视频的一键截图功能
  15. 自媒体人如何在千氪实现月收入过万?
  16. 分布式算法(中科大分布式算法课程笔记)
  17. linux 用户和组的相关文件和命令
  18. C语言中:的其中一种作用
  19. 工程效能部门如何讲好故事做好事
  20. GStreamer连接 IP 网络摄像机的实际例子

热门文章

  1. 万字长文炸裂!手撕 STL 迭代器源码与 traits 编程技法
  2. iOS开源加密相册Agony的实现(七)
  3. 对象空指针中的成员的值是0x8是怎么回事?
  4. Python 删除数组元素
  5. 微信校园浴室预约小程序系统毕业设计毕设(6)开题答辩PPT
  6. 振弦采集模块参数配置工具的使用
  7. nodejs爬虫与python爬虫_爬虫知多少-(NodeJS 爬虫)
  8. 上海人社APP历年社保查询攻略
  9. 拼图游戏--C++语言实现
  10. Android初级开发第九讲--动画