mysql批量插入数据的存储过程
<Date: 2008-01-17> <Author: admin> <Category: mysql> 查看评论
mysql批量插入数据的存储过程
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
分享到:
相关推荐
MySQL创建存储过程批量插入10万条数据 存储过程 1、首先防止主键冲突,我们清空表。 TRUNCATE table A_student; 2、编写存储过程 delimiter ‘$’; CREATE PROCEDURE batchInsert(in args int) BEGIN declare i int ...
你需要先创建存储过程,然后调用...存储过程可以通过循环批量插入数据,提高代码的重用性和可维护性。 这样的好处:逻辑封装:复杂的插入逻辑可以封装在存储过程内,易于管理。 灵活性:可以根据参数动态调整插入行为。
mysql 数据库已存储过程插入一千万条测试数据!利用项目即将上限需要,可以完全系统的测试项目性能!里面又完整的文档和各项说明:打开文档就可以实际操作。
或者使用批量插入数据的特定数据库特性,如MySQL的LOAD DATA INFILE。 以上就是使用Delphi批量插入数据库数据的一些关键知识点。具体到压缩包中的代码fans.net文件,可能是提供示例代码的网站链接,你可以访问该...
在IT领域,尤其是在数据库操作与框架应用中,批量插入数据是一项常见且重要的需求。相比于单条插入,批量插入能够显著提升数据处理效率,减少数据库I/O操作,从而提高整体性能。本文将深入探讨如何利用MyBatis框架...
在C#.NET中批量插入大量数据到数据库是一个常见的任务,特别是在处理诸如从Excel文件导入数据等场景时。这里,我们将探讨如何使用C#.NET高效地完成这个任务,并提供一个简单的示例来说明整个过程。 首先,我们需要...
循环插入: 代码如下: DECLARE @MyCounter INT SET @MyCounter = 0 /*设置变量*/ WHILE (@MyCounter < 2) /*设置循环次数*/ BEGIN WAITFOR DELAY ‘000:00:10’ /*延迟时间10秒*/ INSERT INTO time_by_day (time_...
mysql数据库是目前最流行的开源关系数据库管理系统,它提供了高效、稳定、安全的数据存储解决方案。 本文主要介绍了Java实现批量向mysql写入数据的方法,该方法涉及Java基于JDBC连接mysql数据库及写入数据的相关...
#### 方法一:使用存储过程实现批量插入 存储过程是SQL语句和可选控制流语句的预编译集合,存储在数据库中,可以通过指定的过程名来调用执行。这种方法可以提高代码的复用性和执行效率。 **存储过程创建语法:** `...
批量插入是EFUtilities的核心功能之一。在常规的EF操作中,如果需要将大量数据插入数据库,可能需要多次调用`SaveChanges()`方法,每次插入一条记录。这不仅消耗时间,还可能导致数据库锁竞争,降低性能。使用...
MySQL 提供了多种方法来实现大批量数据插入,包括使用批量插入语句、使用 LOAD DATA 语句、使用 MySQL 的 Bulk Insert 机制等。 在 MySQL 中,使用批量插入语句可以大大提高数据插入的速度。批量插入语句的格式如下...
在Java中,执行MySQL批量插入数据有多种方法,每种方法在性能上都有所不同。以下是对这些方法的详细分析: 方法1:单条插入 这是最基础的插入方式,每次循环都创建一个新的SQL语句并执行。这种方法的效率最低,因为...
批量插入数据是一种常见的优化手段,能够显著提升数据插入的效率。本文主要探讨了在MySQL中如何通过批量插入优化性能,对比了几种不同的批量插入方法,并进行了实验验证。 首先,传统的单条插入方式在面对大量数据...
5. **优化数据库配置**:调整数据库的参数,如增加`innodb_buffer_pool_size`以缓存更多数据,或者调整`bulk_insert_buffer_size`以优化批量插入。 6. **索引优化**:避免在插入过程中使用索引,除非它们是必要的。...
4. 批量插入:为了提高性能,可以考虑使用批量插入(multi-row INSERT)而不是单条插入。 5. 数据库权限:确认执行脚本的用户有足够的权限来读取CSV文件和写入MySQL数据库。 通过以上步骤,我们可以有效地将`prov....
创建存储过程并循环添加记录是数据库管理中的常见任务,尤其是在需要批量插入数据时。以下将详细解释如何在MySQL中实现这一功能。 首先,我们需要了解存储过程的基本创建方法。在MySQL中,我们使用`CREATE ...
本文将详细介绍如何在 MySQL 中插入数据,包括基本的插入语句、批量插入、插入前的数据验证以及相关的高级技巧。 在 MySQL 中插入数据是一项基础操作,但涉及到许多细节和最佳实践。通过本文的介绍,你应该对如何在 ...
比如,你可以创建一个存储过程来批量插入数据,或者创建复杂的业务流程,如订单处理或库存管理。 这些资源合在一起,为MySQL的学习和实践提供了一个完整的学习路径。从基本的SQL语法和命令操作,到进阶的存储过程...
**批量插入**主要用于数据导入和日志记录等场景。例如,在日志系统中,通常会将日志信息先写入到文件中,然后再定期批量导入到数据库中进行存储和分析。下面详细介绍JDBC批量插入的具体实现方式: 1. **使用...
使用JDBC,我们可以编写Java代码来执行SQL语句,包括插入数据。对于Blob字段的处理,JDBC提供了一种流式处理的方式,可以有效地处理大对象。 批量插入Blob数据的基本步骤如下: 1. **连接数据库**:使用`...