我在  mysql 的 控制台 直接 这样  写  
create procedure pp (in vage int,vname varchar(20))
begin
update test set age=vage where name=vname;
end
为什么会错啊 
那 应该如果  写 ?
还有如果 写好  存储过程 
怎么查 
就像  表格  有
show tables ;

解决方案 »

  1.   

    是不是没有先执行delimiter 来转换结束符啊 
      

  2.   

    查看是 show create procedure pp 
      

  3.   

    是不是没有先执行delimiter 来转换结束符啊  
    什么意思?
      

  4.   

    你可以把你的错误信息贴出来,mysql结束符默认是;就是遇到;就结束了 你创建存储过程时会有;所以…………你可以试试这样:
    mysql> delimiter $
    mysql> create procedure pp (in vage int,vname varchar(20)) 
        -> begin 
        -> update test set age=vage where name=vname; 
        -> end 
        -> $
    Query OK, 0 rows affected (0.01 sec)mysql> delimiter ;
    mysql> show create procedure pp;
    +-----------+----------+-----------------------------------------------------------------------------------------------------------+
    | Procedure | sql_mode | Create Procedure                                                                                          |
    +-----------+----------+-----------------------------------------------------------------------------------------------------------+
    | pp        |          | CREATE DEFINER=`root`@`localhost` PROCEDURE `pp`(in vage int,vname varchar(20))
    begin 
    update test set age=vage where name=vname; 
    end | 
    +-----------+----------+-----------------------------------------------------------------------------------------------------------+
    1 row in set (0.00 sec)mysql>