DELIMITER $$ //这个是什么? 我没有看懂。DROP PROCEDURE IF EXISTS `test`.`sp_zerofill`$$CREATE PROCEDURE `test`.`sp_zerofill`(IN num int)
BEGIN
  declare i int default 1;
  -- initialization value
  set @sqltext = 'insert into lk14 values(0,''char0'')';
  -- begin while
  while i < num do
    set @sqltext = concat(@sqltext,',','(',i,',''char',ceil(num*rand()),''')');
    set i = i + 1;
  end while;
  -- begin dynamic sql
  prepare s1 from @sqltext;
  execute s1;
  deallocate prepare s1;
END$$DELIMITER ;

解决方案 »

  1.   

    存储过程的语法,用DELIMITER关键词定义一个代码段分隔符。
      

  2.   

    这个命令与存储过程没什么关系。
      其实就是告诉mysql解释器,该段命令是否已经结束了,mysql是否可以执行了。
      即改变输入结束符。
      默认情况下,delimiter是分号“;”。 
      

  3.   

    DELIMITER 定界符DELIMITER $$
    声明字符串 $$ 为定界符
    即把被 $$ 到 $$ 之间的内容视为一个整体你这是在定义存储过程,难免是多句指令构成的。