知識點:
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改變系統提供的種子值,從而可以使得每次呼...