小弟倒是学会了存储过程的语法,但是具体怎么用就很迷茫了,有如下疑问:
1.难道mysql的存储过程非要在myql>提示符下写吗?(后面的';'怎么办)
2.假如我写了一个存储过程保存为myfun.sql,则如何执行它?
3.能否在同一个文件中同时定义多个存储过程?(比如myfun.sql),
  这样的话如何调用其中的函数?
4.如何在c程序中调用存储过程。望高手一一解答,小弟很无知,许多书上只是讲语法,但没有讲到怎么用!!

解决方案 »

  1.   

    delimiter //解决 ; 问题执行时用 //
      

  2.   

    比如文件 myfun.sql:
      CREATE PROCEDURE example1(  )
      BEGIN 
      DECLARE count INTEGER;
       SELECT COUNT(*)
       INTO count
       FROM signature;
       SELECT CONCAT('Guy has written (or co-written) ',
              count ,
            ' books.');
     END在mysql>下如何执行?
      

  3.   

    mysql> delimiter //
    mysql> create procedure p4()
        -> begin
        -> set @a=7;
        -> set @b=5;
        -> insert into t1 values(@a);
        -> select id*@a from t1 where id>@b;
        -> end;
        -> //          --这里用 // 才会执行 
    Query OK, 0 rows affected (0.13 sec)
    你现在执行查询语句 就要这样写 select * from #tbname //
    如果想换回 ;mysql> delimiter ;
      

  4.   

    mysql> delimiter //
    mysql> CREATE PROCEDURE example1(  ) 
      BEGIN  
      DECLARE count INTEGER; 
       SELECT COUNT(*) 
       INTO count 
       FROM signature; 
       SELECT CONCAT('Guy has written (or co-written) ', 
              count , 
            ' books.'); 
     END //
      

  5.   

    个人人为MYSQL中的存储过程不是很实用.
      

  6.   

    老实说,对我来说
    到目前为止,Table和View已经够用
    存储过程还没用过呢
    呵呵