a6266318 发表于 2018-10-6 11:15:02

Mysql向表中循环插入数据

  如何查看MySQL的当前存储引擎
  看你的mysql现在已提供什么存储引擎:
  mysql> show engines;
  看你的mysql当前默认的存储引擎:
  mysql> show variables like '%storage_engine%';
  创建表
  createtableper2 (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(&quot;fan&quot;, 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) > call per3();//
  由于我没有将delimiter’改回来,所以输入‘;’后并没有执行,还需要//
  其他使用方法
  while ·· end while:
  mysql > DELIMITER //
  mysql > CREATE PROCEDURE proc4()
  -> begin
  -> declare var int;
  -> set var=0;
  -> while var 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;
  //

页: [1]
查看完整版本: Mysql向表中循环插入数据