mysql> delimiter //
mysql> CREATE PROCEDURE load_part_tab()
    -> begin
    -> declare v int default 0;
    -> while v < 8000000
    -> do
    -> insert into part_tab
    -> values (v,'testing partitions',adddate('1995-01-01',(rand(v)*36520) mod 3
652));
    -> set v = v + 1;
    -> end while;
    -> end
    -> //
ERROR 1607 (HY000): Cannot create stored routine `load_part_tab`. Check warnings
为什么一直报错,请指点,解决问题,立刻结贴给分。

解决方案 »

  1.   


    delimiter //
    CREATE PROCEDURE load_part_tab()
      begin
      declare v int default 0;
      while v  < 8000000
      do
      insert into part_tab values (v,'testing partitions',adddate('1995-01-01',(rand(v)*36520) mod 3652));
      set v = v + 1;
      end while;
    end//
      

  2.   

    LS的版主啊还是不行啊,还是一样的错误我的mysql是windows下的5.1.6
      

  3.   


    mysql> use test
    Database changed
    mysql> delimiter //
    mysql> CREATE PROCEDURE load_part_tab()
        ->   begin
        ->   declare v int default 0;
        ->   while v  < 8000000
        ->   do
        ->   insert into part_tab values (v,'testing partitions',adddate('1995-01-01
    ',(rand(v)*36520) mod 3652));
        ->   set v = v + 1;
        ->   end while;
        -> end//
    Query OK, 0 rows affected (0.05 sec)mysql> delimiter ;
    mysql>
      

  4.   

    To LS:我在另一台电脑上,上面装的mysql5.0,可以跑这个存储过程
    可视我的电脑上,为了要用mysql的分区功能,不得不装mysql5.1,就用不起上面的代码
      

  5.   


    mysql> use t_girl
    Database changed
    mysql> delimiter //
    mysql> CREATE PROCEDURE load_part_tab()
        ->   begin
        ->   declare v int default 0;
        ->   while v  < 8000000
        ->   do
        ->   insert into part_tab values (v,'testing partitions',adddate('1995-01-01',(rand(v)*36520) mod 3652));
        ->   set v = v + 1;
        ->   end while;
        -> end//
    Query OK, 0 rows affected (0.00 sec)mysql> delimiter ;
    mysql> select version();
    +-------------------------+
    | version()               |
    +-------------------------+
    | 5.1.23a-maria-alpha-log | 
    +-------------------------+
    1 row in set (0.00 sec)mysql> 
      

  6.   

    问题就出在你用了新版的MySQL
    在建立存储过程前加上这个命令吧。
    SET sql_mode = '';
      

  7.   

    按照LS说的,问题解决了,我用的是6.0的,
    但还是没有找到原因,LS能不能解释一下!
    谢谢!