drop
procedure
ifexists create_data_with_num;
create
procedure create_data_with_num(
in datacount int
)begin
-- declare datacount int default 100; -- 資料總數
declare currentcount int
default1;
-- 當前條數
declare uname nvarchar(20)
default'';
-- 姓名
declare uage int(6
)default0;
-- 年齡
declare isdelete int(2
)default0;
-- 刪除狀態
while
(currentcount<= datacount)
dobegin
-- 先刪除舊資料
delete
from tb_data where id = currentcount;
-- 每5條資料,刪除狀態為1,其餘資料為0
if(currentcount%5=
0)then
set isdelete =1;
else
set isdelete =0;
endif
;set uage = ceiling(rand()*
100)
;-- 隨機生成1-100之間的數字
insert
into
`tb_data`
(`id`
,`name`
,`age`
,`isdelete`
)values
(currentcount,concat(
'使用者'
,currentcount)
, uage, isdelete)
;set currentcount =
(currentcount +1)
;end
;end
while
;end
;
呼叫儲存過程
使用手動事務提交,將單條操作變為批量操作,提高插入效率!
drop
procedure
ifexists create_data_with_num;
create
procedure create_data_with_num(
in datacount int
)begin
-- declare datacount int default 100; -- 資料總數
declare currentcount int
default1;
-- 當前條數
declare uname nvarchar(20)
default'';
-- 姓名
declare uage int(6
)default0;
-- 年齡
declare isdelete int(2
)default0;
-- 刪除狀態
start
transaction
;while
(currentcount<= datacount)
dobegin
-- 先刪除舊資料
delete
from tb_data where id = currentcount;
-- 要求:每隔第5條資料時,刪除狀態為1,其餘資料為0
if(currentcount%5=
0)then
set isdelete =1;
else
set isdelete =0;
endif
;set uage = ceiling(rand()*
100)
;-- 隨機生成1-100之間的數字
insert
into
`tb_data`
(`id`
,`name`
,`age`
,`isdelete`
)values
(currentcount,concat(
'使用者'
使用儲存過程實現顯示搜尋結果和資料條數
儲存過程 create proc pro getnewsbytitleandcontentnumb newskey varchar 64 numb int out asselect newstitle,substring newscontent,1,20 as newscontent,createt...
mysql儲存過程案例 插入100條資料
mysql的儲存過程 1 概述 1 是一種用來處理資料的方式,儲存過程是一種沒有返回值的函式 2 儲存過程和函式是事先經過編譯並儲存在資料庫的一段sql語句的集合,呼叫儲存過程和函式可以簡化開發人員的許多任務作,減少時間在資料庫和應用伺服器直接的傳輸,能夠提高資料處理的效率 3 儲存過程和函式的區別...
mysql 查詢分組裡的第n條資料,前n條資料
select uname,salary,address,new rank from select uname,salary,address,如果臨時變數等於 address,就 1,否則從1開始 if tmpaddress address,rank rank 1 rank 1 as new rank...