注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

PostgreSQL 中文网

 
 
 

日志

 
 

MySQL:批量插入数据  

2014-12-01 17:07:47|  分类: MySQL |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
 
         不知道 MySQL 有没有类似 PostgreSQL 的 generate_series () 函数,在生成测试数据时非常方便,不需要编写存储过程。这里记录下通过存储过程批量插入数据。

--1 创建测试表

francs@localhost:francs>create table test_1(id int4 primary key, name ichar(32));
Query OK, 0 rows affected (0.16 sec)

francs@localhost:francs>desc test_1;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int(11)     | NO   | PRI | NULL    |       |
| name  | ichar(32) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)


--2 批量插入数据存储过程

DELIMITER //  
CREATE PROCEDURE pro_insert()  
BEGIN  
    DECLARE i INT;  
    SET i = 0;  
    
        WHILE i <= 10000 DO  
        insert into test_1(id, name ) values(i,CONCAT(ID,'_a'));  
        SET i = i + 1;  
        END WHILE;  
END
//
 DELIMITER ;


--3 创建存储过程

francs@localhost:francs>DELIMITER //  
francs@localhost:francs>CREATE PROCEDURE pro_insert()  
    -> BEGIN  
    ->     DECLARE i INT;  
    ->     SET i = 0;  
    ->     
    ->         WHILE i <= 10000 DO  
    ->         insert into test_1(id, name ) values(i,CONCAT(ID,'_a'));  
    ->         SET i = i + 1;  
    ->         END WHILE;  
    -> END
    -> //
 DELIMITER ;
Query OK, 0 rows affected (0.07 sec)

francs@localhost:francs> DELIMITER ;

备注: 这里使用了分隔符  delimiter,开始的时候将分隔符由分号改成 //,存储过程执行后,再将分隔符修改回来,稍微有点烦琐,但可以理解。

--4 执行存储过程

francs@localhost:francs>call pro_insert();
Query OK, 1 row affected (16.11 sec)

备注:插入一万条数据需要 16.11 秒,有点慢,与表上有 pk 有关系,同时 与MySQL 的参数没有优化有关。
  评论这张
 
阅读(280)| 评论(1)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016