批量插入資料的儲存過程
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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 資料庫儲存過程資料庫儲存過程
- 【SqlServer】清除過期資料的儲存過程SQLServer儲存過程
- MySql資料庫——儲存過程MySql資料庫儲存過程
- 分享一個批量產生隨機測試資料的MySQL儲存過程隨機MySql儲存過程
- MySQL的寫入資料儲存過程MySql儲存過程
- 【資料庫】資料庫儲存過程(一)資料庫儲存過程
- mssql sqlserver 批量刪除所有儲存過程的方法分享SQLServer儲存過程
- mybatis插入資料、批量插入資料MyBatis
- mysql總結:索引,儲存引擎,大批量資料插入,事務,鎖MySql索引儲存引擎
- 儲存過程_造使用者資料儲存過程
- 使用儲存過程(PL/SQL)向資料庫中儲存BLOB物件儲存過程SQL資料庫物件
- MyBatis(八) 資料庫BLOB讀寫、批量更新操作、儲存過程呼叫、分表、分頁MyBatis資料庫儲存過程
- Mysql使用儲存過程快速新增百萬資料MySql儲存過程
- oracle的儲存過程Oracle儲存過程
- Oracle儲存過程乾貨(一):儲存過程基礎Oracle儲存過程
- SQL 儲存過程裡呼叫另一個儲存過程SQL儲存過程
- 儲存過程與儲存函式儲存過程儲存函式
- unidac儲存過程儲存過程
- firedac儲存過程儲存過程
- 呼叫儲存過程儲存過程
- mysql 儲存過程MySql儲存過程
- SQLSERVER儲存過程SQLServer儲存過程
- Oracle儲存過程Oracle儲存過程
- 頭歌資料庫實驗六:儲存過程資料庫儲存過程
- SQL Server 資料訪問策略:儲存過程QCSQLServer儲存過程
- sqlserver資料庫還原儲存過程指令碼SQLServer資料庫儲存過程指令碼
- Mysql 儲存過程的使用MySql儲存過程
- Sqlserver中的儲存過程SQLServer儲存過程
- 使用MySqlBulkLoader批量插入資料MySql
- 儲存崩潰資料恢復過程;資料恢復案例資料恢復
- 資料儲存(1):從資料儲存看人類文明-資料儲存器發展歷程
- MySQL:JDBC批量插入資料的效率MySqlJDBC
- 非遞迴演算法/儲存過程版/GUID主鍵完整資料庫示例_插入記錄遞迴演算法儲存過程GUI資料庫
- 通過EFCore呼叫GBase8s資料庫儲存過程資料庫儲存過程
- vsan儲存資料恢復過程—虛擬機器故障恢復過程資料恢復虛擬機
- 金倉資料庫KingbaseES儲存過程 RETURN語句資料庫儲存過程
- mysql中使用儲存過程生成1億條資料MySql儲存過程
- V3700系列儲存資料恢復成功過程資料恢復
- mssql 儲存過程呼叫另一個儲存過程中的結果的方法分享SQL儲存過程