set @v_index=0;
while @v_index<100000 do
set @v_index=@v_index+1
insert into myindex (vc_name,vc_city,i_age,i_schoolid) values('name'+@v_index,'city'+@v_index,12,@v_index) 
end while;
想插入10万条测试数据,想直接在查询里面写sql语句,不想用存储过程,sql语句如上,报错,提示
[Err] 1064 - 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 'while @v_index<100000 do
set @v_index=@v_index+1
insert into myindex (vc_name,' at line 1高手指点一下,在mysql查询里面可以直接这么写么,如果可以,请指教。

解决方案 »

  1.   

    DELIMITER $$
    CREATE PROCEDURE DD()
    BEGIN
    SET @v_index=0;
    WHILE @v_index<100000 DO
    SET @v_index=@v_index+1;
    INSERT INTO myindex (vc_name,vc_city,i_age,i_schoolid) VALUES('name'+@v_index,'city'+@v_index,12,@v_index)  ;
    END WHILE;
    END $$
    DELIMITER ;
      

  2.   

    MYSQL目前不支持匿名块,必须写在SP中,除非更换数据库
      

  3.   


    匿名块的意思是啥?是说在查询里面定义的变量不能在一个块里面使用,比如说这个while块?
      

  4.   

    MYSQL 与ORALCE或者SQL SERVER不同,它的这种过程语句比如WHILE, REPEAT只能放在存储过程中执行。不能当作普通语句执行。
      

  5.   

    ok,我刚看了你们回答的另外一贴,http://topic.csdn.net/u/20110113/16/bb5c2724-4ba4-41cc-9b6e-49e48817625a.html
    我明白了,谢谢