初学存储过程,写了一个最简单的存储过程但是出错不知道问题出在哪delimiter//
create procedure insert_stu(in name varchar,in id int)
insert into student(name,stuclassid) values(name,id);
end//但是有问题,帮忙看看

解决方案 »

  1.   

    delimiter//
    create procedure insert_stu(in name varchar,in id int)
    insert into student(name,stuclassid) values(name,id);
    end;//
      

  2.   

    少了个分号...
    最后记得改回终止符 delimiter//
    create procedure insert_stu(in name varchar,in id int)
    insert into student(name,stuclassid) values(name,id);
    end;//delimiter ;
      

  3.   

    还是有问题
    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 'in id
     int)
    begin
    insert into student(name,stuclassid) values(name,id);
    end' at line 1
      

  4.   

    delimiter $$
    create procedure insert_stu(in name varchar,in id int)
    begin 
    insert into student(name,stuclassid) values(name,id);
    end;
    $$delimiter ;漏掉了BEGIN
      

  5.   

    delimiter $$
    create procedure insert_stu(in name VARCHAR(100),in id int)
    BEGIN 
    SELECT 'OK';
    END;
    $$delimiter ;
    我建立了一个跟你差不多的 是可以执行 的
      

  6.   

    delimiter $$
    create procedure insert_stu(in name varchar(100),in id int)
    begin 
    insert into student(name,stuclassid) values(name,id);
    end;
    $$delimiter ;
      

  7.   

    create procedure insert_stu(in name varchar,in id int)
    insert into student(name,stuclassid) values(name,id);改成如上。
      

  8.   

    create procedure insert_stu(in name varchar(10),in id int)
    insert into student(name,stuclassid) values(name,id)
    that'ok  楼主头像是三国杀陆逊?
      

  9.   

    那奇怪了,建一个不带参数的是可以的,但是带参数的就不行了
    delimiter $$
    create procedure insert_stu()
    begin 
    insert into student(name,stuclassid) values(111,1);
    end;
    $$
      

  10.   

    create procedure insert_stu(in name varchar(10),in id int)
    insert into student(name,stuclassid) values(name,id)
    就可以啦 楼主的语句2个问题 一个是只有end 没有begin 还有个就是varchar没有长度
      

  11.   

    你的只有一句话用不着begin end 和 delimiter
      

  12.   

    手册中查一下BEGIN的作用是什么。
    MySQL官方文档 http://dev.mysql.com/doc/refman/5.1/zh/index.html
      

  13.   

    begin end 之间是procedure的过程体delimiter的作用是让SQL默认结束符由;转变成你指定的符号如果只有一句话 那么结束符号 ;不会出现多次 所以就不会有问题了