--批量插入数据的sql语句
delimiter $$
DROP PROCEDURE IF EXISTS `test.sp_insert_batch` $$
CREATE DEFINER =`root`@`localhost` PROCEDURE `sp_insert_atch`(IN number INT)
BEGIN
DECLARE i INT ;
SET i = 1;
#such as 1-2000,2000-4000,
WHILE i <= number DO
IF MOD(i,2000) = 1 THEN
SET @sqltext = CONCAT('(''',CONCAT('t',i),''',''',now(),''',',CEIL(10*rand()),')');
ELSEIF MOD(i,2000) = 0 THEN
SET @sqltext = CONCAT(@sqltext,',(''',CONCAT('t',i),''',''',now(),''',',CEIL(10*RAND()),')');
SET @sqltext = CONCAT('insert into song (name,datetime,rank) values',@sqltext);
prepare stmt FROM @sqltext;
execute stmt;
deallocate prepare stmt;
SET @sqltext = '';
ELSE
SET @sqltext = CONCAT(@sqltext,',(''',CONCAT('t',i),''',''',now(),''',',CEIL(10*RAND()),')');
END IF;
SET i = i + 1;
END WHILE ;
#process when number is not be moded by 2000
#such as 2001,4002, 15200,....
IF @sqltext<>'' THEN
SET @sqltext = CONCAT('INSERT INTO song (name,datetime,rank) VALUES',@sqltext);
prepare stmt FROM @sqltext;
deallocate prepare stmt;
SET @sqltext='';
END IF;
END$$ delimiter ; CREATE TABLE `song`(
`id` INT NOT NULL AUTO_INCREMENT COMMENT 'Autoincrement element',
`name` TEXT NOT NULL ,
`datetime` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`rank` INT NOT NULL ,
PRIMARY KEY (`id`)
) engine = MyISAM AUTO_INCREMENT = 8102001 DEFAULT CHARSET = gbk;

注:此存储过程,实际应用需要测试。

mysql应用存储过程批量插入数据的更多相关文章

  1. mysql利用存储过程批量插入数据

    最近需要测试一下mysql单表数据达到1000W条以上时增删改查的性能.由于没有现成的数据,因此自己构造,本文只是实例,以及简单的介绍. 首先当然是建表: [sql]view plaincopy CR ...

  2. PG数据库创建并执行存储过程批量插入数据

    记录一下PG数据库创建并执行存储过程批量插入数据的SQL: create or replace function addId() returns boolean AS $BODY$ declare i ...

  3. sqlserver存储过程批量插入数据

    在系统中经常会遇到向数据库中批量插入数据情况,存储过程中没有数组,只有通过字符串分割循环插入,下面是一个本人研究的一个例子: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 c ...

  4. Oracle 存储过程批量插入数据

    oracle 存储过程批量插入大量数据 declare numCount number; userName varchar2(512); email varchar2(512); markCommen ...

  5. MySQL:JDBC批量插入数据的效率

    平时使用mysql插入.查询数据都没有注意过效率,今天在for循环中使用JDBC插入1000条数据居然等待了一会儿 就来探索一下JDBC的批量插入语句对效率的提高 首先进行建表 create tabl ...

  6. mysql 使用存储过程批量插数据

    #创建测试表 DROP TABLE IF EXISTS test.test; CREATE TABLE test.test( id int(10) not null auto_increment, a ...

  7. mysql存储过程批量插入数据

    DROP TABLE IF EXISTS TeachersInfo; CREATE TABLE TeachersInfo ( id INT NOT NULL AUTO_INCREMENT, teach ...

  8. 使用Oracle的存储过程批量插入数据

    原文地址:http://www.cnblogs.com/liaoyu/p/oracle-procedure-batch-insert.html 作者:L君还在说之乎者也 最近在工作中,需要使用生成一些 ...

  9. postgres 使用存储过程批量插入数据

    參考资料(pl/pgsql 官方文档): http://www.postgresql.org/docs/9.3/static/plpgsql.html create or replace functi ...

随机推荐

  1. sematext

    https://sematext.atlassian.net/wiki/display/PUBLOGSENE/Syslog

  2. struts.properties的参数描述

    A.2.1 概述 如果我们希望覆盖在default.properties文件里面定义的默认配置,那就可以定义struts.properties文件,在里面设置我们需要的值,当然现在也可以在struts ...

  3. C#保留小数位数

    1.System.Globalization.NumberFormatInfo provider = new System.Globalization.NumberFormatInfo(); prov ...

  4. 妙味课堂——HTML+CSS(第一课)

    一句话,还记忆不如烂笔头,何况还这么笨,记下笔记,也是记录这一路学习的过程. 妙味课堂第一课并未一味地先讲HTML,而是穿插着CSS讲解,这一点不同于一些其他视频,这一点挺特别的!所以这一课涉及到HT ...

  5. lintcode: 最长无重复字符的子串

    题目 最长无重复字符的子串给定一个字符串,请找出其中无重复字符的最长子字符串. 例如,在"abcabcbb"中,其无重复字符的最长子字符串是"abc",其长度为 ...

  6. PageLayoutControl的基本操作

    整理了下对PageLayoutControl的基本功能操作 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 2 ...

  7. Windows环境变量设置无效解决办法——DOS窗口设置环境变量

    公司配置的电脑是Win7,使用的账户并不是管理员账户,我在计算机->属性中设置环境变量无效. 后来在DOS窗口中设置环境变量成功. 1. set [环境变量名称]=[所有环境变量值]:set P ...

  8. Iterator的remove方法可保证从源集合中安全地删除对象(转)

    如果对正在被迭代的集合进行结构上的改变(即对该集合使用add.remove或clear方法),那么迭代器就不再合法(并且在其后使用该迭代器将会有ConcurrentModificationExcept ...

  9. Cocos2dx+lua中Color参数的坑

    cocos2x的lua中有如下几种颜色定义 --Color3B function cc.c3b( _r,_g,_b ) return { r = _r, g = _g, b = _b } end -- ...

  10. IE6下position:fixed;兼容

    *html{ background-image:url(about:blank); background-attachment:fixed;}/*解决抖动问题*/ .backto-top{ width ...