2、打开excel表,按照程序提供的字段填写相应的数据,需要跟程序提供的一样,其他的描述。.
3、使用的mysql管理工具Navicatfor MySQL,打开工具,选择表所在的数据库,然后点击数据库名字,右键数据,出来下拉菜单选择import wizard ,有汉化版本的更明确.d出一个选择界面,选择excel file文件。
4、点击next(下一步),选择对应的excel文件就行,然后再下面选文件内容在哪一个sheet中,也就是内容写在excel什么地方,这点需要注意,也是关键的地方。
5、点击next (此步骤也是关键步骤),需要注意2点: 1:filedname row 就是字段所在excel中的位置,也就是第几行(简单办法,一般就是英文对应的那一列).2:first data row(从哪一行开始执行),数据从哪一行开始。.
6、点击next选择 targettable 目标对应的数据库,选择要导入到哪个数据库中表中。
7、如果到上面一步没有问题的话,默认next到最后 就行了.然后打开表就能看到数据跟excel表中的一样。
-- 判断存储test是否存在,如果存在则删除
DROP PROCEDURE IF EXISTS test
-- 创建存储过程
CREATE PROCEDURE test()
BEGIN
-- 声明循环变量int型 i
DECLARE i INT DEFAULT 1
-- 设置i=0
set i=0
-- 循环100次
while i<100 do
-- if判断i为偶数
if i%2 = 0 THEN
-- 要实现的 *** 作 CONCAT(str1,str2,...) concat函数用于拼接子串和数字类型
INSERT into user(name,addr) VALUES(CONCAT('test',i,'ss'),'addr')
end if
-- i自增
set i=i+1
END WHILE
END
-- 调用存储过程
CALL test()
首先, 插入上万条数据,对于数据库来说并不是“很大”的工作量,一般配置的笔记本电脑都可以在1分钟内完成。 所以最简单、最灵活的办法还是写SQL语句。如果不希望DB编译器每次执行都编译SQL的话,可以使用存储过程,直接调用,性能上会好很多。也比较简单。
(几万条数据怎么地也得要时间去处理,所以不可能特别快的。)
如果由于各种原因,导致这个插入还是很慢, 而且你的MYSQL又是5.0以上版本的话,可以使用BulkCopy来进行批量 *** 作。
BulkCopy的原理就是Client直接把一个数组(DataTable)传给DB,然后传入表名,所有的编译、 *** 作都由DB自己完成,效率很高。
引用MySql.Data.dll , 调用MysqlBulkCopy函数即可。
这个函数在处理海量数据插入的时候效率尤为明显, 小量数据反而没什么优势,而且由于传入的DataTable格式必须和表的字段一模一样(空的列也要传进去),导致C#要写很多代码来构造这个数组,所以要你自己权衡用还是不用。
我在自己的电脑上批量插入一亿条数据,Insert写法大概需要1小时,BulkCopy大概只需要5分钟。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)