批量插入資料的儲存過程
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 ;
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
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
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26855487/viewspace-733158/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle 匿名儲存過程插入大量測試資料Oracle儲存過程
- Mysql利用儲存過程插入500W條資料MySql儲存過程
- MySql 儲存過程 臨時表 無法插入資料MySql儲存過程
- 儲存過程批量生成awr指令碼儲存過程指令碼
- 自動生成對錶進行插入和更新的儲存過程的儲存過程 (轉)儲存過程
- Oracle '批量'禁用外來鍵的儲存過程Oracle儲存過程
- 【SqlServer】清除過期資料的儲存過程SQLServer儲存過程
- MySql資料庫——儲存過程MySql資料庫儲存過程
- 儲存過程返回資料集儲存過程
- 儲存過程呼叫不同資料庫的資料儲存過程資料庫
- MySQL的寫入資料儲存過程MySql儲存過程
- 分享一個批量產生隨機測試資料的MySQL儲存過程隨機MySql儲存過程
- 【資料庫】資料庫儲存過程(一)資料庫儲存過程
- 資料庫設計:儲存過程資料庫儲存過程
- 淺談資料庫中的儲存過程資料庫儲存過程
- mybatis插入資料、批量插入資料MyBatis
- mssql sqlserver 批量刪除所有儲存過程的方法分享SQLServer儲存過程
- mysql總結:索引,儲存引擎,大批量資料插入,事務,鎖MySql索引儲存引擎
- SQL Server 資料備份儲存過程SQLServer儲存過程
- 資料庫許可權-儲存過程資料庫儲存過程
- 從sybase的儲存過程轉向oracle的儲存過程儲存過程Oracle
- MySQL儲存過程詳解 mysql 儲存過程MySql儲存過程
- 從根源揭祕HashMap的資料儲存過程HashMap儲存過程
- 儲存過程儲存過程
- 在儲存過程A中呼叫儲存過程B的結果儲存過程
- 使用儲存過程(PL/SQL)向資料庫中儲存BLOB物件儲存過程SQL資料庫物件
- Mysql使用儲存過程快速新增百萬資料MySql儲存過程
- 資料庫設計:儲存過程主體資料庫儲存過程
- Mysql 資料庫水平分表 儲存過程MySql資料庫儲存過程
- 資料庫開發---常用物件-儲存過程資料庫物件儲存過程
- tcbs_批量儲存過程_sql_case when_示例儲存過程SQL
- oracle的儲存過程Oracle儲存過程
- 修改的儲存過程儲存過程
- mysql的儲存過程MySql儲存過程
- oracle批量插入資料Oracle
- MyBatis 批量插入資料MyBatis
- MyBatis(八) 資料庫BLOB讀寫、批量更新操作、儲存過程呼叫、分表、分頁MyBatis資料庫儲存過程
- bbs的資料結構和儲存過程(二) (轉)資料結構儲存過程