1. 程式人生 > >Mysql向表中循環插入數據

Mysql向表中循環插入數據

同時 ins 支持 limit 離開 begin ble del set

如何查看MySQL的當前存儲引擎

看你的mysql現在已提供什麽存儲引擎:

mysql> show engines;

看你的mysql當前默認的存儲引擎:

mysql> show variables like '%storage_engine%';

創建表

create table per2 (id int,name varchar(20))

所以我們手動設置delimiter為//

delimiter //

create procedure per3()

begin

declare num int;

set num=1;

while num < 20000000 do

insert into per2(id,name) values(num,concat("fan", num));

set num=num+1;

end while;

end

//

其中concat(“fan”, num),相當於oracle中fan||i的拼接效果,但是mysql不支持這樣拼接

之後我們要調用這個procedure,才會插入數據

其中concat(“fan”, num),相當於oracle中fan||i的拼接效果,但是mysql不支持這樣拼接

之後我們要調用這個procedure,才會插入數據

(mysql@localhost) [fandb]> call per3();//

由於我沒有將delimiter’改回來,所以輸入‘;’後並沒有執行,還需要//

其他使用方法

while ·· end while:

mysql > DELIMITER //

mysql > CREATE PROCEDURE proc4()

-> begin

-> declare var int;

-> set var=0;

-> while var<6 do

-> insert into t values(var);

-> set var=var+1;

-> end while;

-> end;

-> //

repeat ·· end repeat:

它在執行操作後檢查結果,而 while 則是執行前迚行檢查。

mysql > DELIMITER //

mysql > CREATE PROCEDURE proc5 ()

-> begin

-> declare v int;

-> set v=0;

-> repeat

-> insert into t values(v);

-> set v=v+1;

-> until v>=5

-> end repeat;

-> end;

-> //

repeat–循環體 until 循環條件 endrepeat;

loop ·· endloop:

loop 循環丌需要初始條件,這點和 while 循環相似,同時和 repeat 循環一樣丌需要結束條

件, leave 詫句的意義是離開循環。

mysql > DELIMITER //

mysql > CREATE PROCEDURE proc6 ()

begin

declare v int;

set v=0;

LOOP_LABLE:loop

insert into t values(v);

set v=v+1;

if v >=5 then

leave LOOP_LABLE;

end if;

end loop;

end;

//


Mysql向表中循環插入數據