首頁 > 軟體

mysql 迴圈insert方式

2022-08-18 14:02:55

mysql 迴圈insert

親測成功!可用,複製即可

DELIMITER ;;
CREATE PROCEDURE test_insert()
BEGIN
DECLARE y TINYINT DEFAULT 1;
WHILE y<10
DO
INSERT INTO sysuser_user_deposit_log(log_id, type, user_id, operator, fee, message, logtime, deposit) VALUES (NULL, 'expense', '4903', 'system', '0.500', '使用者抽獎,抽獎單號:1807261600465829', '1532592017', NULL);
SET y=y+1;
END WHILE ;
commit;
END;;
CALL test_insert();

mysql 迴圈語句

本文總結了mysql常見的三種迴圈方式:while、repeat和loop迴圈。還有一種goto,不推薦使用。

一、while迴圈

delimiter //                            #定義識別符號為雙斜槓
drop procedure if exists test;          #如果存在test儲存過程則刪除
create procedure test()                 #建立無參儲存過程,名稱為test
begin
    declare i int;                      #申明變數
    set i = 0;                          #變數賦值
    while i < 10 do                     #結束迴圈的條件: 當i大於10時跳出while迴圈
        insert into test values (i);    #往test表新增資料
        set i = i + 1;                  #迴圈一次,i加一
    end while;                          #結束while迴圈
    select * from test;                 #檢視test表資料
end
//                                      #結束定義語句
call test();                            #呼叫儲存過程

二、repeat迴圈

delimiter //                            #定義識別符號為雙斜槓
drop procedure if exists test;          #如果存在test儲存過程則刪除
create procedure test()                 #建立無參儲存過程,名稱為test
begin
    declare i int;                      #申明變數
    set i = 0;                          #變數賦值
    repeat
        insert into test values (i);    #往test表新增資料
        set i = i + 1;                  #迴圈一次,i加一
    until i > 10 end repeat;            #結束迴圈的條件: 當i大於10時跳出repeat迴圈
    select * from test;                 #檢視test表資料
end
//                                      #結束定義語句
call test();                            #呼叫儲存過程

三、loop迴圈

delimiter //                            #定義識別符號為雙斜槓
drop procedure if exists test;          #如果存在test儲存過程則刪除
create procedure test()                 #建立無參儲存過程,名稱為test
begin
    declare i int;                      #申明變數
    set i = 0;                          #變數賦值
    lp : loop                           #lp為迴圈體名,可隨意 loop為關鍵字
        insert into test values (i);    #往test表新增資料
        set i = i + 1;                  #迴圈一次,i加一
        if i > 10 then                  #結束迴圈的條件: 當i大於10時跳出loop迴圈
            leave lp;
        end if; 
    end loop;
    select * from test;                 #檢視test表資料
end
//                                      #結束定義語句
call test();                            #呼叫儲存過程

以上為個人經驗,希望能給大家一個參考,也希望大家多多支援it145.com。

 


IT145.com E-mail:sddin#qq.com