`

mysql 循环插入批量数据,亲身实践,各种坑总结

 
阅读更多
一、表结构

CREATE TABLE `test` (
  `userid` varchar(255) DEFAULT NULL,
  `name1` varchar(255) DEFAULT NULL,
  `value1` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

二、正确的sql语句:
DROP PROCEDURE IF EXISTS proc_initData; //如果存在这个存储过程先drop掉
DELIMITER $ 
CREATE PROCEDURE proc_initData()     //创建存储过程
BEGIN 
    DECLARE i INT DEFAULT 1;      //创建存储过程变量
    WHILE i<=10 DO       //执行条件
        INSERT INTO test(userid,name1,value1) VALUES(i,'name',i); 
        SET i = i+1;   //会话变量
    END WHILE; 
END $ 
CALL proc_initData();  //执行完之后需要在调用存储过程函数

三、注意事项,踩过的坑
1、错误一:
DROP PROCEDURE IF EXISTS proc_initData;
DELIMITER $ 
CREATE PROCEDURE proc_initData() 
BEGIN 
    DECLARE i INT DEFAULT 11; 
    WHILE i<=20 DO 
        INSERT INTO test(user_id.name1,value1) VALUES(i,'name'+i,i); 
        SET i = i+1; 
    END WHILE; 
END $ 
CALL proc_initData();

错误代码: 1136 Column count doesn't match value count at row 1
说明:列不匹配的错误信息,仔细检查发现userid这个列名不对,并且userid后面紧跟着的逗号符号不对

2、错误二:
DROP PROCEDURE IF EXISTS proc_initData;
DELIMITER $ 
CREATE PROCEDURE proc_initData() 
BEGIN 
    DECLARE i INT DEFAULT 11; 
    WHILE i<=20 DO 
        INSERT INTO test(userid,name1,value1) VALUES(i,'name'+i,i); 
        SET i = i+1; 
    END WHILE; 
END $ 
CALL proc_initData();
错误代码: 1292  Truncated incorrect DOUBLE value: 'name'
说明:该错误是因为name1这一列赋值不对,我本意是想让name循环+1, 可是报错了,具体操作还没找到


分享到:
评论

相关推荐

    mysql 批量插入测试数据

    mysql 批量插入测试数据 ,可判断条件插入数据,随心所遇插入,do where 循环

    往mysql循环插入几千万条数据

    做测试时,到mysql数据库循环插入千万条数据的java代码

    MySQL创建存储过程批量插入10万条数据

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

    MySql练习1:批量插入成绩数据.zip

    MySql练习1:批量插入成绩数据.zip,MySql练习1:批量插入成绩数据.zipMySql练习1:批量插入成绩数据.zipMySql练习1:批量插入成绩数据.zipMySql练习1:批量插入成绩数据.zip

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

    通过使用JDBC,可以实现这些基本操作,例如在本文中,我们使用了insert into语句向mysql数据库中插入数据。 4. Java语言中的时间处理:在本文中,我们使用了SimpleDateFormat类来处理时间信息,例如获取当前时间的...

    MySQL循环插入千万级数据

    1、创建测试表 CREATE TABLE `mysql_genarate` ( `id` int(11) NOT NULL AUTO_...2、创建一个循环插入的存储过程 CREATE DEFINER=`root`@`localhost` PROCEDURE `test_two1`( ) BEGIN DECLARE i INT DEFAU

    一个工具类搞定批量插入增加数据到Mysql数据库

    只要学我一样编写这么一个工具类便可以实现批量插入多条数据,百条,千条,万条,后期还会继续优化增加数据时的速度!有点代码基础的保证能看懂,此项目已经有了前端界面你可以直接的导入然后运行测试既可以了,表...

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

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

    Mybatis 3+Mysql 实现批量插入

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

    python工具-excel批量导入mysql (几千万数据半小时可搞定)

    4. **使用批量插入**:如上所示,分批写入数据可以减少数据库连接的开销,提高性能。 5. **利用存储过程**:在数据库端编写存储过程,执行数据导入,利用数据库本身的优化机制。 通过以上步骤和优化策略,即使面对...

    mysql数据批量插入

    一种快速大数据的mysql 数据库的插入方法,相比之前一条一条插入,根本不是一个级别的!

    mysql循环添加数据(存储详细)

    接下来,我们将为每个表创建一个对应的存储过程,用于实现循环插入数据的功能。 #### 1. 存储过程 - MyISAM ```sql DELIMITER @ CREATE PROCEDURE insert_isam(IN item INTEGER) BEGIN DECLARE counter INT; SET...

    mysql批量插入数据运行脚本

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

    Node.js下向MySQL数据库插入批量数据的方法

    在Node.js环境中,当需要向MySQL数据库批量插入数据时,可以显著提高效率并减少与数据库的交互次数。本文将详细讲解如何实现这一功能,并提供一个实际的示例代码。 首先,确保已经安装了`mysql`模块,它是Node.js中...

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

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

    利用poi获取excel数据批量插入大量数据到mysql

    总结,本教程介绍了如何使用Apache POI读取Excel数据并借助JDBC批量插入到MySQL数据库的方法。这种方法适用于需要从Excel数据源导入大量数据到关系型数据库的场景,能够有效地提高数据处理的效率。在实际应用中,...

    Python3 操作 MySQL 插入一条数据并返回主键 id的实例

    最后,文章总结了该实例对于Python3操作MySQL数据库插入数据并获取主键id的实践价值,并鼓励大家进行学习和参考,同时建议对于多线程并发操作的场景,应当考虑使用多进程来保证数据的一致性和操作的安全性。...

    spring jdbc Templatetest 访问mysql数据库,批量插入数据

    本主题将详细讲解如何使用Spring JDBC Template访问MySQL数据库并进行批量插入数据的操作。 首先,我们需要在项目中引入Spring框架的相关依赖,通常包括`spring-context`和`spring-jdbc`。这些可以在Maven或Gradle...

    批量插入数据到数据库请使用MysqlBulkCopy.dll.zip

    源码批量添加到SQLServer和Mysql数据库。源码包含有不同方法的添加,第一种逐条添加,第二种批量加入,其批量加实现原理其实就是把数据存入内存表(DataTable)中使用Backcopy一次性加入数据库。添加dll引用即可调用...

Global site tag (gtag.js) - Google Analytics