在线等,mysql循环插入测试数据,高手指点一下

laokaizzz 2012-03-19 03:24:05

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查询里面可以直接这么写么,如果可以,请指教。
...全文
181 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
laokaizzz 2012-03-19
  • 打赏
  • 举报
回复
ok,我刚看了你们回答的另外一贴,http://topic.csdn.net/u/20110113/16/bb5c2724-4ba4-41cc-9b6e-49e48817625a.html
我明白了,谢谢
wwwwb 2012-03-19
  • 打赏
  • 举报
回复
简单地说,上述代码必须在SP中
ACMAIN_CHM 2012-03-19
  • 打赏
  • 举报
回复
MYSQL 与ORALCE或者SQL SERVER不同,它的这种过程语句比如WHILE, REPEAT只能放在存储过程中执行。不能当作普通语句执行。
laokaizzz 2012-03-19
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wwwwb 的回复:]
MYSQL目前不支持匿名块,必须写在SP中,除非更换数据库
[/Quote]

匿名块的意思是啥?是说在查询里面定义的变量不能在一个块里面使用,比如说这个while块?
wwwwb 2012-03-19
  • 打赏
  • 举报
回复
MYSQL目前不支持匿名块,必须写在SP中,除非更换数据库
laokaizzz 2012-03-19
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wwwwb 的回复:]
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……
[/Quote]

高手,我不想用存储过程,我想直接在查询里面写,不知道怎么弄呢
wwwwb 2012-03-19
  • 打赏
  • 举报
回复
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 ;

56,687

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧