`
jinxhj2003
  • 浏览: 148950 次
  • 性别: Icon_minigender_1
  • 来自: 南昌
社区版块
存档分类
最新评论

mysql批量插入数据的存储过程

阅读更多
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万条数据

    MySQL创建存储过程批量插入10万条数据 存储过程 1、首先防止主键冲突,我们清空表。 TRUNCATE table A_student; 2、编写存储过程 delimiter ‘$’; CREATE PROCEDURE batchInsert(in args int) BEGIN declare i int ...

    mysql批量插入数据运行脚本

    你需要先创建存储过程,然后调用...存储过程可以通过循环批量插入数据,提高代码的重用性和可维护性。 这样的好处:逻辑封装:复杂的插入逻辑可以封装在存储过程内,易于管理。 灵活性:可以根据参数动态调整插入行为。

    百万数据批量插入存储过程

    mysql 数据库已存储过程插入一千万条测试数据!利用项目即将上限需要,可以完全系统的测试项目性能!里面又完整的文档和各项说明:打开文档就可以实际操作。

    Delphi批量插入数据库数据..rar

    或者使用批量插入数据的特定数据库特性,如MySQL的LOAD DATA INFILE。 以上就是使用Delphi批量插入数据库数据的一些关键知识点。具体到压缩包中的代码fans.net文件,可能是提供示例代码的网站链接,你可以访问该...

    Mybatis 3+Mysql 实现批量插入

    在IT领域,尤其是在数据库操作与框架应用中,批量插入数据是一项常见且重要的需求。相比于单条插入,批量插入能够显著提升数据处理效率,减少数据库I/O操作,从而提高整体性能。本文将深入探讨如何利用MyBatis框架...

    C#.NET中如何批量插入大量数据到数据库中

    在C#.NET中批量插入大量数据到数据库是一个常见的任务,特别是在处理诸如从Excel文件导入数据等场景时。这里,我们将探讨如何使用C#.NET高效地完成这个任务,并提供一个简单的示例来说明整个过程。 首先,我们需要...

    用SQL批量插入数据的存储过程

    循环插入: 代码如下: DECLARE @MyCounter INT SET @MyCounter = 0 /*设置变量*/ WHILE (@MyCounter &lt; 2) /*设置循环次数*/ BEGIN WAITFOR DELAY ‘000:00:10’ /*延迟时间10秒*/ INSERT INTO time_by_day (time_...

    Java实现批量向mysql写入数据的方法

    mysql数据库是目前最流行的开源关系数据库管理系统,它提供了高效、稳定、安全的数据存储解决方案。 本文主要介绍了Java实现批量向mysql写入数据的方法,该方法涉及Java基于JDBC连接mysql数据库及写入数据的相关...

    MySQL批量添加数据脚本

    #### 方法一:使用存储过程实现批量插入 存储过程是SQL语句和可选控制流语句的预编译集合,存储在数据库中,可以通过指定的过程名来调用执行。这种方法可以提高代码的复用性和执行效率。 **存储过程创建语法:** `...

    EF批量更新、批量插入、 批量删除使用的是EFUtilities,免费的操作简单,速度超级快

    批量插入是EFUtilities的核心功能之一。在常规的EF操作中,如果需要将大量数据插入数据库,可能需要多次调用`SaveChanges()`方法,每次插入一条记录。这不仅消耗时间,还可能导致数据库锁竞争,降低性能。使用...

    mysql大批量数据插入

    MySQL 提供了多种方法来实现大批量数据插入,包括使用批量插入语句、使用 LOAD DATA 语句、使用 MySQL 的 Bulk Insert 机制等。 在 MySQL 中,使用批量插入语句可以大大提高数据插入的速度。批量插入语句的格式如下...

    java 下执行mysql 批量插入的几种方法及用时

    在Java中,执行MySQL批量插入数据有多种方法,每种方法在性能上都有所不同。以下是对这些方法的详细分析: 方法1:单条插入 这是最基础的插入方式,每次循环都创建一个新的SQL语句并执行。这种方法的效率最低,因为...

    MYSQL开发性能研究之批量插入数据的优化方法

    批量插入数据是一种常见的优化手段,能够显著提升数据插入的效率。本文主要探讨了在MySQL中如何通过批量插入优化性能,对比了几种不同的批量插入方法,并进行了实验验证。 首先,传统的单条插入方式在面对大量数据...

    C++操作MySQL大量数据插入效率低下的解决方法

    5. **优化数据库配置**:调整数据库的参数,如增加`innodb_buffer_pool_size`以缓存更多数据,或者调整`bulk_insert_buffer_size`以优化批量插入。 6. **索引优化**:避免在插入过程中使用索引,除非它们是必要的。...

    Shell脚本批量添加CSV数据到MySQL

    4. 批量插入:为了提高性能,可以考虑使用批量插入(multi-row INSERT)而不是单条插入。 5. 数据库权限:确认执行脚本的用户有足够的权限来读取CSV文件和写入MySQL数据库。 通过以上步骤,我们可以有效地将`prov....

    MySQL实现创建存储过程并循环添加记录的方法

    创建存储过程并循环添加记录是数据库管理中的常见任务,尤其是在需要批量插入数据时。以下将详细解释如何在MySQL中实现这一功能。 首先,我们需要了解存储过程的基本创建方法。在MySQL中,我们使用`CREATE ...

    深入探索 MySQL 数据插入:技术指南与最佳实践

    本文将详细介绍如何在 MySQL 中插入数据,包括基本的插入语句、批量插入、插入前的数据验证以及相关的高级技巧。 在 MySQL 中插入数据是一项基础操作,但涉及到许多细节和最佳实践。通过本文的介绍,你应该对如何在 ...

    mysql中文手册+mysql命令大全+mysql存储过程

    比如,你可以创建一个存储过程来批量插入数据,或者创建复杂的业务流程,如订单处理或库存管理。 这些资源合在一起,为MySQL的学习和实践提供了一个完整的学习路径。从基本的SQL语法和命令操作,到进阶的存储过程...

    JDBC批量插入 更新 删除等操作

    **批量插入**主要用于数据导入和日志记录等场景。例如,在日志系统中,通常会将日志信息先写入到文件中,然后再定期批量导入到数据库中进行存储和分析。下面详细介绍JDBC批量插入的具体实现方式: 1. **使用...

    jdbc批量插入大字段

    使用JDBC,我们可以编写Java代码来执行SQL语句,包括插入数据。对于Blob字段的处理,JDBC提供了一种流式处理的方式,可以有效地处理大对象。 批量插入Blob数据的基本步骤如下: 1. **连接数据库**:使用`...

Global site tag (gtag.js) - Google Analytics