mysql儲存過程迴圈事務插入資料
DROP PROCEDURE IF EXISTS insertTUserStatement; create procedure insertTUserStatement(IN num int) begin declare i int; start transaction; set i=0; while i<num do INSERT t_user_statement VALUES(NULL,FLOOR(1 + RAND() * (10)),1,FLOOR(100 + (RAND() * 99999)),0,1,1,NOW(),0,0); set i=i+1; end while; commit; end; CALL insertTUserStatement(100000);
使用事務一次性提交,速度會快很多。10W條資料也才不到3秒,百萬條不到30秒,模擬資料非常方便。 此表主鍵自增,所以未寫回滾。
相關推薦
mysql儲存過程迴圈事務插入資料
DROP PROCEDURE IF EXISTS insertTUserStatement; create procedure insertTUserStatement(IN num int) begin declare i int; start transac
MYSQL儲存過程迴圈遍歷插入資料
本示例通過 while...end while 迴圈控制遊標來實現插入表記錄。 DROP PROCEDURE IF exists pro_initCategoryForTradingEntity; create procedure pro_initCategoryForTr
mysql儲存過程迴圈修改每一條資料
DELIMITER $$ USE `health`$$ DROP PROCEDURE IF EXISTS `repairDiseaseData`$$ CREATE DEFINER=`root`@`%` PROCEDURE `repairDiseaseData`() BEGI
mysql儲存過程迴圈 while/repeat/loop
先把語句結束符設定成// mysql> DELIMITER // while 條件 do … end while mysql> create procedure proce_while() -> begin -> de
mysql儲存過程以及日誌和資料恢復
MySQL儲存過程 Mysql儲存過程是一組為了完成特定功能的SQL語句集,經過編譯之後儲存在資料庫中, 當需要使用該組SQL語句時使用者只需要通過指定儲存過程的名字並給定引數就可以呼叫執行它了 簡而言之就是一組已經寫好的命令,需要使用的時候拿出來用就可以了。 \d //(修改語句結
用SQL儲存過程實現批量插入資料
1,單條插入 INSERT INTO time_by_day (time_id, the_date, the_year, month_of_year, quarter,day_of_month) VALUES ('1101', '1999-10-1', '1999', '10', 'Q4','1'
mysql儲存過程迴圈遍歷sql結果集,並執行動態sql
/* 將其他幾張表資料複製到一張總表中 */ DROP PROCEDURE IF EXISTS sp_customer; CREATE PROCEDURE sp_customer() BEGIN -- 需要執行的SQL語句 DECLARE v_sql_1 VARCH
MySQL 儲存過程迴圈遍歷
WHILE, REPEAT, LOOP在MYSQL裡都是用來作為定型文抽出而使用的,都是利用迴圈方式提取資料。在這三種方法中,WHILE是在迴圈的初回處理開始之前進行條件判斷,REPEAT是在迴圈結束時進行判斷,而LOOP不具備判斷功能。這三種功能的使用一定要在MySQL5.
MYSQL儲存過程迴圈CURSOR(遊標)使用
遊標概述 概括來說,遊標是一種臨時的資料庫物件,即用來存放一個表中所有資訊或者表中的一部分資料資訊(副本)。遊標也可以用來指向資料的某一行,可以充當資料庫中的行指標。 最常見用途就是儲存查詢結果,便於後面使用,遊標中的結果集都是有select語句產生的(臨時的資料庫物件)。
mysql 儲存過程 有資料修改 沒資料插入
BEGIN DECLARE sid INT(10) DEFAULT 0; DECLARE money INT(10) DEFAULT 0; DECLARE row_count INT; DECLARE done INT DEFAULT FALSE;#預設遊標讀出有記錄 DECLA
mysql儲存過程插入十萬條資料
用儲存過程建立一個類似這樣的表,從0到99999的五位數,不足五位數的補足 delimiter // #定義識別符號為雙斜槓 drop procedure if exists init; #如果
MySql 儲存過程 臨時表 無法插入資料
今天在寫儲存過程的時候,發現一個問題就是,sql明明能查出資料,為啥無法插入到臨時表、實體表呢? 儲存過程擷取如下: BEGIN /*****************************
使用mysql儲存過程快速插入百萬mysql測試資料
建表 使用者表CREATE TABLE `user` ( `id` BIGINT (20), `name` VARCHAR(20) )ENGINE=INNO
mysql建立儲存過程,模擬插入200萬用戶
公司需要建立模擬使用者測試大資料,百度建立儲存過程模擬插入資料下面是sql程式碼 CREATE PROCEDURE test() begin declare var int; declare a int; declare mobile bigint; SET var
MySQL--儲存過程的迴圈語句程式碼筆記--while、repeat和loop
mysql> delimiter $$ mysql> create table testB -> ( -> id int(6) not null -> ) $$ Query OK, 0 rows affected (0.86 sec) mysq
MySQL儲存過程之while、repeat迴圈
一、while迴圈 CREATE DEFINER=`root`@`localhost` PROCEDURE `PRO_WHILE`() BEGIN DECLARE i INT DEFAULT 0; WHILE (i<10) DO /*當滿足條件的時候執行此程式碼塊*/ BE
MySQL基礎系列之 記一次利用儲存過程實現2600萬資料水平分表
日常開發中我們經常會遇到大表的情況,所謂的大表是指儲存了百萬級乃至千萬級條記錄的表。這樣的表過於龐大,導致資料庫在查詢和插入的時候耗時太長,效能低下,如果涉及聯合查詢的情況,效能會更加糟糕。分表的目的就是減少資料庫的負擔,提高資料庫的效率,通常點來講就是提高表的增刪改查效率,本文將介紹我
MySQL儲存過程中的3種迴圈,儲存過程的基本語法,ORACLE與MYSQL的儲存過程/函式的使用區別,退出儲存過程方法
學無止境 部落格園 首頁 新隨筆 聯絡 訂閱 管理 隨筆-1968 評論-103 文章-4&
mysql儲存過程去除重複資料
CREATE DEFINER=`root`@`%` PROCEDURE `del_incoming_pointer`() BEGIN /* 定義變數一 */ DECLARE paramId int; DECLARE paramCode VARCHAR
MySQL:檢視、觸發器、儲存過程、事務
檢視: 檢視,虛擬表 建立虛擬表: # 語法: # create view 虛擬表名稱 as 虛擬表; create view course_and_teacher as select * from course inner join teacher on course.teacher_id =