`
zhuliyy1983
  • 浏览: 63003 次
  • 来自: ...
社区版块
存档分类
最新评论

mysql存储过程实例

阅读更多

DROP PROCEDURE IF EXISTS `test`.`sp_test`$$

CREATE PROCEDURE `test`.`sp_test`(IN table_name varchar(255),IN total int)
BEGIN
  set @stmt = concat(''select * from '',table_name,'' limit ?'');
  prepare s1 from @stmt;
  set @s = total;
  execute s1 using @s;
deallocate prepare s1;
END$$

DELIMITER ;


======================================================================

CREATE   PROCEDURE   curdemo()  
  BEGIN  
      DECLARE   done   INT   DEFAULT   0;  
      DECLARE   a   CHAR(16);  
      DECLARE   b,c   INT;  
      DECLARE   cur1   CURSOR   FOR   SELECT   id,data   FROM   test.t1;  
      DECLARE   cur2   CURSOR   FOR   SELECT   i   FROM   test.t2;  
      DECLARE   CONTINUE   HANDLER   FOR   SQLSTATE   '02000'   SET   done   =   1;  
   
      OPEN   cur1;  
      OPEN   cur2;  
   
      REPEAT  
          FETCH   cur1   INTO   a,   b;  
          FETCH   cur2   INTO   c;  
          IF   NOT   done   THEN  
                IF   b   <   c   THEN  
                      INSERT   INTO   test.t3   VALUES   (a,b);  
                ELSE  
                      INSERT   INTO   test.t3   VALUES   (a,c);  
                END   IF;  
          END   IF;  
      UNTIL   done   END   REPEAT;  
   
      CLOSE   cur1;  
      CLOSE   cur2;  
  END  

======================================================================

分享到:
评论
2 楼 zhouzhichu 2010-06-23  
呵呵,我感觉写的也一般
1 楼 haidage 2009-07-06  
写的就一个垃圾,上火

相关推荐

Global site tag (gtag.js) - Google Analytics