mysql for迴圈新增隨機數

2021-10-06 17:53:30 字數 1975 閱讀 6019

知識點:

1.delimiter關鍵字:設定結束標誌符號

2.mysql儲存過程模板

delimiter $$

create procedure method()

begin

執行sql

end while;

end $$

3.mysql儲存過程for迴圈

while i < 1500 do

end while;

4.呼叫儲存過程:

call method();

5.mysql儲存過程定義變數

declare param1 bigint;

declare param2 int;

declare param3 varchar;

6.隨機數字組合

--八位數字隨機組合

select floor(10000000+rand()* (99999999 - 10000000));

--六位數字隨機組合

select floor(100000+rand()* (999999 - 100000));

例子:

drop procedure if exists `card_batch_insert`;

delimiter $$

create procedure card_batch_insert()

begin

declare card_id_a bigint;

declare card_pwd_a bigint;

declare i int;

set i=0;

while i < 1500 do

set card_id_a=floor(10000000+rand()* (99999999 - 10000000));

set card_pwd_a=floor(100000+rand()* (999999 - 100000));

insert ignore into tbl_rcb_lvtong_card(card_id,card_pwd) values(card_id_a,card_pwd_a);

set i=i+1;

end while;

end $$

delimiter ;

call card_batch_insert();

注意:bug - while 迴圈只執行一次

原因:插入表設定唯一鍵,儲存過程的while迴圈變數未改變

錯誤樣例

drop procedure if exists `card_batch_insert`;

delimiter $$

create procedure card_batch_insert()

begin

declare card_id_a bigint;

declare card_pwd_a bigint;

declare i int;

set card_id_a=floor(10000000+rand()* (99999999 - 10000000));

set card_pwd_a=floor(100000+rand()* (999999 - 100000));

set i=0;

while i < 1500 do

insert ignore into tbl_rcb_lvtong_card(card_id,card_pwd) values(card_id_a,card_pwd_a);

set i=i+1;

end while;

end $$

delimiter ;

call card_batch_insert();

迴圈和隨機數

親愛的小夥伴們 我來了,今天帶了點乾貨 和大家小酌一杯 1 資料型別 字串 數字 布林 列表 元組 字典 2 做乙個稅率的計算吧 計算方法 扣除標準3500元 月 2011年9月1日起正式執行 工資 薪金所得適用 三險一金 工資 比例 扣除三險一金後月收入 工資 三險一金 應納稅所得額 扣除三險一金...

MS SQL迴圈 隨機數

建立檢視 create view myview as select re rand 自定義函式 取得指定範圍的隨機數 create function mydata aint b int returns decimal 38,0 as begin declare rdecimal 38,0 selec...

隨機數 偽隨機數

隨機數 偽隨機數 rand函式在產生隨機數前,需要系統提供的生成偽隨機數序列的種子,rand根據這個種子的值產生一系列隨機數。如果系統提供的種子沒有變化,每次呼叫rand函式生成的偽隨機數序列都是一樣的。srand unsigned seed 通過引數seed改變系統提供的種子值,從而可以使得每次呼...