mysql> delimiter //
mysql> create procedure tt()
    -> begin
    -> declare id integer;
    ->  set id=1;
    ->  while(id<300)
    ->  do
    ->  set id=id+1;
    ->  set @ee= concat ("insert into url(urladdr) values('
    ->  end while;
    ->  prepare ee from @v_flag;
    ->  EXECUTE ee ;
    ->  DEALLOCATE PREPARE ee;
    -> end;
    -> //
Query OK, 0 rows affected (0.00 sec)mysql> delimiter ;
mysql> call tt();
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near 'NULL
 at line 1
mysql>

解决方案 »

  1.   

    drop procedure if exists  tt;
    delimiter //
    create procedure tt()
    begin
    declare id integer;
     set id=1;
     while(id<300)
     do
     set id=id+1;
     set @ee= concat ("insert into url(urladdr) values('')","");
     end while;
     prepare ee from @v_flag;
     EXECUTE ee ;
     DEALLOCATE PREPARE ee;
    end; 
    //
    delimiter ;
      

  2.   

    给你修改了一下:delimiter // 
    create procedure tt() 
     begin 
     declare id integer; 
      set id=1; 
      while(id <300) 
      do 
      set id=id+1; 
      set @ee= concat("insert into url(urladdr) values('')"," "); 
      prepare v_flag from @ee; <--v_flag放在前面,后面是语句
      EXECUTE v_flag; 
      DEALLOCATE PREPARE v_flag; 
      end while; 
     end; 
    //
      

  3.   

    delimiter // 
    create procedure tt() 
     begin 
     declare id integer; 
      set id=1; 
      while(id <300) 
      do 
      set id=id+1; 
      set @ee= concat("insert into url(urladdr) values('')"," "); 
      prepare v_flag from @ee; 
      EXECUTE v_flag; 
      DEALLOCATE PREPARE v_flag; 
      end while; 
     end; 
    //
    OK 3Q