如何查看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;
//