将excel数据导入mysql并生成uuid

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34182808/article/details/85719951

需求分析

    1、将excel数据导入数据库中;

    2、利用uuid生成的32随机数作主键;

    3、利用CURRENT_TIMESTAMP()生成时间;

步骤

    1、创建数据库表

在创建数据库的时候,主键的主键的生成方式通常有两种,一种是利用数据库的主键自增,产生主键,这也是常用的主键的生成方式。另一种为通过生成的随机序列当做主键。通过excel导入数据库时,excel的数据中包含随机序列时,可以直接将数据导入数据库,当做主键使用。但是如果没有的话,处理则相对比较麻烦(本博客介绍不包含随机数列的情况)。

没有随机数列时,为了能够将excel中的数据导入数据库中,创建数据库表时,暂时将主键去掉,只保留主键字段。在此,我们创建test表,主键id并未标记。

CREATE TABLE `test` (
  `ID` varchar(50) DEFAULT NULL COMMENT '测试id',
  `NAME` varchar(100) DEFAULT NULL COMMENT '名称',
  `CREATE_TIME` datetime DEFAULT NULL COMMENT '创建时间',
  `UPDATE_TIME` datetime DEFAULT NULL COMMENT '更新时间'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='测试表';

    2、将excel数据导入数据库表test中

注意:先用excel打开excel表格,否则会提示无法打开excel文件

右键test->导入向导->Excel文件(2007或以上版本)(*.xlsx)->导入->下一步->下一步

在对应的“源栏位”处选择excel中对应的内容,然后依次点击下一步->下一步->开始,完成excel中数据导入数据库表中。

    3、在id中生成uuid

UPDATE test SET ID= UUID();

        注意,生成id时,不要直接将uuid()产生的序列中的''-"通过Replace方法去掉,不然生成的id的将全部相同。 

    4、将生成的id中的"-"替换掉

UPDATE test SET  ID = (SELECT REPLACE(ID,'-',''));

    5、生成时间

UPDATE test SET UPDATE_TIME = CURRENT_TIMESTAMP();

    6、生成标准化的数据库

首先,将已经导入到test表中的数据通过sql转储,进行保存。然后将test表删除,然后建立标准的数据库test表(比如主键为id,创建时间为非空等),最后将sql转储的数据导入的数据库表中,完成数据的导入。

总结

       上面操作是先将excel数据导入一个非标准的表中,然后通过sql语句,填充数据,当数据满足要求时,再将sql转储,导入标准的表中,整个操作步骤比较繁琐,(刚刚接触sql中的内容,应该会有更好的方式),如果大家有更好的方式,欢迎分享学习。

猜你喜欢

转载自blog.csdn.net/qq_34182808/article/details/85719951