使用儲存過程生成N條資料

2021-10-09 23:30:43 字數 2708 閱讀 2710

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...