建议楼主先亲自参考一下MYSQL官方免费手册中的存储过程的例子写一下,然后有什么具体问题可以把自己定怕代码和错误信息一同贴出分析讨论。

解决方案 »

  1.   


    create procedure mypro()
    begin
    declare i int  default 0;
    declare pos int default 10002;
    while i<5 do
    insert into s(stu_num,stu_name,stu_address) values(pos,'xy','北京市');
    set i = i+1;
    set pos = pos+1;
    end while;
    end;
    下载了一本  施伯乐的 数据库教程,为什么书里没有讲解标准的存储过程的写法?那本书讲解标准的?
      

  2.   

      --  问题1
    create procedure pro1
    as
    begin
    declare @i int
    set @i=1
    while @i<=10
    begin
    insert into table1(stu_num,stu_name) values(@i,'aaa');
    set @i=@i+1
    end
    end
    --  问题2
    create procedure pro2
    as
    begin
    declare @i int
    set @i=1
    while @i<=10
    begin
    insert into table2(stu_num,stu_name) values(@i,'aaa');
    set @i=@i+1
    end
    end
      

  3.   

    很简单的while循环  试着写把   
      

  4.   

    上面写的是SERVER SQL的,下面是MYSQL的
    --  问题1
    create procedure pro1()
    as
    begin
    declare i int
    set i=1
    while i<=10 do
    insert into table1(stu_num,stu_name) values(@i,'aaa');
    set i=i+1
    end while;
    end;
    --  问题2
    create procedure pro2()
    as
    begin
    declare i int
    set i=1
    while i<=10 do
    begin
    insert into table2(stu_num,stu_name) values(i,'aaa');
    set i=i+1
    end while;
    end;
      

  5.   

    create procedure mypro()
    begin
    declare @i int ;
    declare @pos int;
    set @i = 0;
    set @pos = 10002;
    while @i<5 do
    begin
    insert into s(stu_num,stu_name,stu_address) values(@pos,'xy','北京市');
    set @i = i+1;
    set @pos = @pos+1;
    end  while;
    end为什么我这个不行?为什么 标准的存储过程 语法 没有书本讲解?
      

  6.   

    create procedure pro2()
    begin
    declare i int;
    set i=1;
    while i<=10 do
    insert into table2 (stu_num,stu_name) values (i,'aaa');
    set i=i+1;
    end while;
    end;
      

  7.   

    create procedure mypro()
    begin
    declare i int 
    declare pos int
    set i = 0
    set pos = 10002
    while i<5 do
    begin
    insert into s(stu_num,stu_name,stu_address) values(pos,'xy','北京市')
    set i = i+1
    set pos = pos+1
    end  while
    end依旧不行,受不了, 难道存储过程没有标准语法???
      

  8.   

    create procedure mypro()
    begin
    declare i int ;
    declare pos int;
    set i = 0;
    set pos = 10002;
    while i<5 do
    insert into s(stu_num,stu_name,stu_address) values(pos,'xy','北京市');
    set i = i+1;
    set pos = pos+1;
    end  while;
    end;
      

  9.   

    create procedure mypro()
    as
    begin
    #declare i int 
    declare pos int
    #set i = 0
    set pos = 10002
    while pos<10005 do
    begin
    insert into s(stu_num,stu_name,stu_address)values(pos,'xy','北京市')
    #set i = i+1
    set pos = pos+1
    end  while
    end我把这个放sql脚本里,然后source 这个sql脚本,结果就一直报错真他妈受不了了
      

  10.   


    为什么放sql脚本里 ,source 后就不行?
      

  11.   


    为什么要source? 直接call mypro()
      

  12.   

    在source之前执行
    mysql> delimiter  //
      

  13.   


    你的法子有纰漏,没有考虑到windows路径带来的隐患。我的放在d:\test.sql;内容为:
    create procedure mypro1()begin
    declare i int 
    declare pos int
    set i = 0;
    set pos = 10002;
    while pos<10005 do
    begin
    insert into s(stu_num,stu_name,stu_address)values(pos,'xy','北京市');
    set i = i+1;
    set pos = pos+1;
    end  while
    end
    于是我在命令行下:delimiter //
    source d:/test.sql;结果提示打不开这个sql. 原因很可能就是delimiter //导致的。看错误提示:Failed to open file 'd:\test.sql;', error: 2于是我恢复成:delimiter ;
    source d:/test.sql;
    结果又立即提示 sql中的语法有问题。
      

  14.   

    下面代码保存到d:\test.sql
    create procedure mypro1()
    begin
    declare i int ;
    declare pos int;
    set i = 0;
    set pos = 10002;
    while pos<10005 do
    insert into s(stu_num,stu_name,stu_address)values(pos,'xy','北京市');
    set i = i+1;
    set pos = pos+1;
    end  while;
    end;