批量插入数据的存储过程
DELIMITER $$
DROP PROCEDURE IF EXISTS `test`.`sp_insert_batch`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_insert_batch`(IN number int(11))
BEGIN
declare i int(11);
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;
execute stmt;
DEALLOCATE PREPARE stmt;
set @sqltext='';
end if;
END$$
DELIMITER ;
附表结构。
/*DDL Information For - test.song*/
-----------------------------------
Table Create Table
------ ----------------------------------------------------------------------------------------
song CREATE TABLE `song` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'Autoincreament element',
`name` text NOT NULL,
`datetime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`rank` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=8102001 DEFAULT CHARSET=gbk
转载于:https://blog.51cto.com/yueliangdao0608/81281
批量插入数据的存储过程相关推荐
- mysql批量插入数据的函数和存储过程
-- 创建函数前,设置 set global log_bin_trust_function_creators=TRUE; -- 新建函数-产生随机的字符串 drop function if exist ...
- 三种批量插入数据的方法
批量插入数据 本文将介绍三种批量插入数据的方法.第一种方法是使用循环语句逐个将数据项插入到数据库中:第二种方法使用的是SqlBulkCopy,使您可以用其他源的数据有效批量加载 SQL Server ...
- Mysql 如何批量插入数据
比如你需要造一些压测数据,150万条,怎么快速做到呢? 下面使用存储函数和存储过程来批量插入数据. # 1.创建数据库: create database bigData; use bigData;# ...
- 批量插入数据库语句java_java相关:MyBatis批量插入数据到Oracle数据库中的两种方式(实例代码)...
java相关:MyBatis批量插入数据到Oracle数据库中的两种方式(实例代码) 发布于 2020-7-22| 复制链接 本文通过实例代码给大家分享了MyBatis批量插入数据到Oracle数据库 ...
- oracle insert汉字出错,Oracle数据库之Oracle批量插入数据SQL语句太长出错:无效的主机/绑定变量名...
本文主要向大家介绍了Oracle数据库之Oracle批量插入数据SQL语句太长出错:无效的主机/绑定变量名,通过具体的内容向大家展现,希望对大家学习Oracle数据库有所帮助. Oracle数据库,用 ...
- linux批量es数据,Elasticsearch批量插入数据
Elasticsearch批量插入数据 使用bulk批量操作数据库 1. 创建批量操作文件 格式: {"index":{"_index":"home& ...
- android SQLite 批量插入数据慢的解决方案 (针对于不同的android api 版本)
android SQLite 批量插入数据慢的解决方案 (针对于不同的android api 版本) 参考文章: (1)android SQLite 批量插入数据慢的解决方案 (针对于不同的andro ...
- php addall,ThinkPHP3.2框架使用addAll()批量插入数据的方法
这篇文章主要介绍了ThinkPHP3.2框架使用addAll()批量插入数据的方法,结合实例形式分析了thinkPHP针对单条数据插入及批量数据插入操作的相关实现技巧,需要的朋友可以参考下 本文实例讲 ...
- .NET Excel 2003 批量插入数据很慢的解决办法
.Net利用Office组件的操作Excel批量插入数据据的时候,会非常慢. 我也曾经想利用其它组件来实现这个功能,但是效果不是很理想.后来经过查阅资料,发现Excel.Range的Value属性是O ...
最新文章
- 报名 | 首期AI Time PhD:听清北师兄分享前沿研究成果!
- Windows Azure AppFabric概述
- html fmt转换日期格式,js通用时间格式转换函数
- ASP.NET MVC上传图片前后台内容
- [转]SQL Server 2000执行计划成本(1/5)
- iOS - UIControl
- Public key for mysql....rpm is not installed
- docker 中运行 mysql
- 使用explain查询select查询语句执行计划
- 实习踩坑之路:快速失败:使用stream流便利集合的时候删除了对象,导致抛错Null
- AR/VR learning (1)--artoolkit在android studio 上的配置
- SQL语句 获取系统日期
- Xmind用例导入到TAPD的方案(附代码)
- 红米note3照相数据丢失
- 查看用友NC的版本方法(不启动NC,只看NCHOME)
- java简单的正则表达式验证邮箱
- Linux 批量处理dos2unix
- 规范你的代码编写风格
- 手把手教你搭建深度学习环境
- QPBOC交易流程详解--POS与卡片的数据交互进行分析
热门文章
- 树莓派(Raspberry Pi 3) centos7使用yum命令报错File /usr/bin/yum, line 30 except KeyboardInterrupt, e:...
- python--函数
- C#中排序的多种实现方式
- 解决Loadrunner报not writing pre_cci.ci问题
- linux -------- 使用xshell ,winscp 连接linux 以及一些问题解决
- 日常工作问题解决:配置NTP服务器以及一些常见错误解决
- 关于ubuntu系统无线网络网速慢的解决方法
- peer not authenticated的终极解决方案
- 解决 IntelliJ IDEA Tomcat 控制台中文输出乱码问题
- PHP cURL可以在单个请求中检索响应标头和正文吗?