- 浏览: 208684 次
- 来自: 深圳
文章分类
- 全部博客 (161)
- java (15)
- JSTL (3)
- 分页 (4)
- JDK (1)
- 正则表达式 (1)
- struts (2)
- JS (11)
- Tomcat (7)
- XML (1)
- JSP (7)
- MD5加密 (1)
- log4j (1)
- SVN (11)
- Jquery (2)
- myeclipse (3)
- 聚生网管2011 (1)
- 验证码 (2)
- Hibernate (2)
- Andriod (1)
- 网站测试 (2)
- ajax (1)
- linux (2)
- Spring (4)
- oracle (1)
- 个人所得 (4)
- Html (1)
- CSS (1)
- mysql (15)
- 省市区(县)联动 (2)
- 网页背景音乐 (3)
- FTP服务器搭建 (1)
- FTP (3)
- 404 500错误 (2)
- 网站域名绑定 (1)
- 遇到比较纠结的问题 (1)
- 记住密码 (1)
- QQ在线交谈功能 (1)
- Mail (1)
- java邮件 (1)
- java高并发 (1)
- 注册码 (0)
- HTTP状态码 (1)
- PHP (11)
- DZ论坛 (9)
- dz (1)
- ISAPI_Rewrite3 (1)
- asp (3)
- SEO (1)
- dedecms (2)
最新评论
-
shaode2012:
一个个网上都是宁愿写那么多的代码,文字,也没见到几个愿意用数据 ...
省市区(县)联动代码 -
lqfACCP:
...
Pager标签库(分页显示)详解
MySql 不支持直接写SQL 语句实现循环插入功能. 想要实现该功能的方法有:用其他语言操控MySql或者用存储过程来实现两种。
1、存储过程实现
A、表结构 (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
B、定义存储过程
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 ;
C、调用存储过程
call sp_insert_batch (100); --参数为需要插入的行数
2、用其他语言操控MySql实现(以shell为例)
for ((i=1;i<=1000;i++));
do `mysql test -e "insert into t1(idx,pw) value($i,md5($i));"`;
done
1、存储过程实现
A、表结构 (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
B、定义存储过程
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 ;
C、调用存储过程
call sp_insert_batch (100); --参数为需要插入的行数
2、用其他语言操控MySql实现(以shell为例)
for ((i=1;i<=1000;i++));
do `mysql test -e "insert into t1(idx,pw) value($i,md5($i));"`;
done
发表评论
-
mysql 1067错误
2015-05-03 00:38 694MySQL数据库的启动过程中,出现了错误:数据库启动失败,1 ... -
解决安装MySQL5.1出现Cannot create windows service for mysql.error:0
2015-03-02 17:57 902一般这样的问题都是由于重装MySQL或者配置服务出错等原因, ... -
Can't create/write to file 'c:\tool\mysql\tmp\#sql_718_0.myi 错误
2014-05-06 21:30 793我用navicat premium打开表为什么提示Can' ... -
通过Mysql命令行语句来导入、导出数据库文件
2014-04-17 14:23 686今天有个同学问我说能不能将数据库进行迁移,我当时想那应该得重 ... -
MySql 错误 Err [Imp] 1153 - Got a packet bigger than 'max_allowed_packet' bytes
2013-10-16 16:03 971今天在用Navicat导入SQL文件时报错:MySql 错误 ... -
MySQL存储过程详解
2013-05-01 21:53 846mysql存储过程详解 1. 存储过程简介 ... -
MySQL数据库服务器优化详细
2013-04-18 23:01 799我最近在网上查了一些有关优化MySql的资料,并对照MySq ... -
MySQL性能优化
2013-04-18 22:57 7811. 简介 在Web应用程序体系架构中,数据持久层(通常是 ... -
MySQL存储过程详解
2013-04-10 20:45 700mysql存储过程详解 1. ... -
Can't connect to MySQL server on 'localhost' (10061)解决方法
2013-01-31 12:36 2212mysql 报“Can't connect to ... -
mysql删除记录后id顺序不连续的解决方法
2012-08-23 15:08 4163方法1、删除自增字段,然后重建(缺点就是必须记住自增字段的其它 ... -
MySQL性能优化的最佳20+条经验 .
2012-07-21 09:46 823今天,数据库的操作越 ... -
mysql创建新用户并设权限命令
2012-07-07 13:50 998grant 权限1,权限2,…权限n on 数据库名称.表名称 ... -
从Excel到导入MYSQL数据库
2012-06-05 01:22 842为了把Excel导入数据库写了这个这段程序,大概思路解释一下 ...
相关推荐
做测试时,到mysql数据库循环插入千万条数据的java代码
本文将深入探讨如何利用MyBatis框架结合MySQL数据库实现批量插入功能,包括其原理、配置、代码实现以及优化策略。 ### 一、MyBatis框架简介 MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级...
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 批量插入测试数据 ,可判断条件插入数据,随心所遇插入,do where 循环
接下来,我们将为每个表创建一个对应的存储过程,用于实现循环插入数据的功能。 #### 1. 存储过程 - MyISAM ```sql DELIMITER @ CREATE PROCEDURE insert_isam(IN item INTEGER) BEGIN DECLARE counter INT; SET...
以下将详细解释如何在MySQL中实现这一功能。 首先,我们需要了解存储过程的基本创建方法。在MySQL中,我们使用`CREATE PROCEDURE`语句来定义一个存储过程。在给定的示例中,创建了一个名为`myproc`的存储过程: ``...
- **分页显示**:在大量数据的场景下,如帖子列表,通常会实现分页功能,通过`LIMIT`和`OFFSET`在SQL中实现。 7. **其他高级特性** - **缓存机制**:使用Redis或Memcached缓存热门数据,减少数据库压力。 - **...
在这个例子中,我们将使用MySQL数据库来实现这一功能。 首先,我们要了解分页的基本原理。分页通常通过两个参数实现:当前页数(Page Number)和每页显示的条目数(PageSize)。通过这两个参数,我们可以计算出查询...
MySQL创建存储过程批量插入10万条数据 存储过程 1、首先防止主键冲突,我们清空表。 TRUNCATE table A_student; 2、编写存储过程 delimiter ‘$’; CREATE PROCEDURE batchInsert(in args int) BEGIN declare i int ...
本话题将详细讲解如何利用存储过程实现循环插入100条记录,这对于批量数据处理非常实用,特别是在MySQL数据库中。 首先,我们来看一下给出的示例代码: ```sql mysql> delimiter $$ // 更改分隔符,避免与存储过程...
其实我在插入1000万条数据的时候遇到了一些问题,现在先来解决他们,一开始我插入100万条数据时候报错,控制台的信息如下: com.mysql.jdbc.PacketTooBigException: Packet for query is too large (4232009 > ...
在本文中,我们将深入探讨如何使用HTML、PHP和MySQL实现一个功能完备的留言板系统,包括查看、增加和删除留言的功能,并解决中文乱码问题。这是一个常见的Web开发应用场景,对于初学者和进阶开发者来说,都是一个很...
通过使用JDBC,可以实现这些基本操作,例如在本文中,我们使用了insert into语句向mysql数据库中插入数据。 4. Java语言中的时间处理:在本文中,我们使用了SimpleDateFormat类来处理时间信息,例如获取当前时间的...
这篇博客文章“mysql游标实现到了最后一个结束之后结束循环”可能详细介绍了如何在MySQL中使用游标来处理数据,以及如何在循环结束时正确地关闭游标,防止资源浪费。 在MySQL中,游标的使用通常包括以下步骤: 1. ...
首先,让我们深入理解这个系统的功能和实现过程。 1. **PHP基础**:PHP是一种广泛使用的服务器端脚本语言,尤其适合Web开发。要创建新闻系统,开发者需要熟悉PHP语法、变量、数据类型、流程控制(如条件语句和循环...
1. 单条插入:这是最基本的方式,通过for循环逐条执行INSERT语句。这种方式的效率最低,因为每次插入都需要建立和维护数据库连接,产生的IO和网络开销最大。 2. 批量插入:将多条INSERT语句合并成一个大的SQL语句,...
《基于Python MySQL实现快递包装循环利用系统》是一个综合性的IT项目,主要涵盖了Python编程语言、MySQL数据库管理和系统设计等核心知识点。该项目旨在构建一个能够有效管理快递包装的循环利用平台,提高资源利用率...
本篇将详细解释如何实现这个功能。 首先,MySQL提供了一个内置的随机数生成函数`RAND()`。这个函数返回0到1之间的一个浮点数,包括0但不包括1。如果你需要一个特定范围内的随机整数,可以通过以下方式调整: ```...
// 循环内操作,如插入数据 SET i = i + 1; // 更新变量i的值 END WHILE; // 结束WHILE循环 END $$ // 结束定义语句 CALL wk(); // 调用存储过程 DELIMITER ; // 恢复默认的结束符; ``` 在这个例子中,`WHILE`...
**方法一:循环插入** 这是最基本的方法,适合数据量较小的情况。通过循环遍历数据,逐条执行SQL插入语句。然而,这种方法效率较低,因为每次插入都会产生一次网络通信,消耗数据库连接资源。 **方法二:拼接SQL...