Welcome 微信登录

首页 / 数据库 / MySQL / MySQL存储过程和存储过程中循环小结

直接上内容第一:存储过程中CASE 条件 
  1. CREATE PROCEDURE p_case(IN parameter1 INT) 
  2. BEGIN 
  3.     DECLARE variable1 INT; 
  4.     SET variable1 = parameter1 + 1; 
  5.     CASE variable1 
  6.         WHEN 0 THEN INSERT INTO t VALUES(0); 
  7.         WHEN 1 THEN INSERT INTO t VALUES(1); 
  8.         ELSE INSERT INTO t VALUES(2); 
  9.     END CASE; 
  10. END; 
LOOPS 循环
【一】WHILE...END WHILE
【二】LOOP...END LOOP
【三】REPEAT...END REPEAT
【四】GOTO一:WHILE...END WHILE
  1. CREATE PROCEDURE p_while() 
  2. BEGIN 
  3.     DECLARE v INT; 
  4.     SET v = 0; 
  5.     WHILE v < 5 DO 
  6.         INSERT INTO t VALUES(v); 
  7.         SET v = v + 1; 
  8.     END WHILE; 
  9. END;// 
二:LOOP...END LOOP 
  1. CREATE PROCEDURE p_loop() 
  2. BEGIN 
  3.     DECLARE v INT; 
  4.     SET v = 0; 
  5.     loop_label:LOOP 
  6.         INSERT INTO t VALUES(v); 
  7.         SET v = v + 1; 
  8.         IF v>=5 THEN 
  9.             LEAVE loop_label; 
  10.         END IF; 
  11.     END LOOP; 
  12. END;//  
三:REPEAT...END REPEAT
 
  1. CREATE PROCEDURE p_repeat() 
  2. BEGIN 
  3.     DECLARE v INT; 
  4.     SET v = 0; 
  5.     REPEAT 
  6.         INSERT INTO t VALUES(v); 
  7.         SET v = v + 1; 
  8.         UNTIL v>=5 
  9.     END REPEAT; 
  10. END;// 
存储过程:有返回
  1. CREATE PROCEDURE optionsrank( 
  2.     OUT pl INT, 
  3.     OUT ph INT, 
  4.     OUT pa INT 
  5. ) 
  6. BEGIN 
  7.     SELECT MAX(option_id) INTO ph FROM wp_options; 
  8.     SELECT Min(option_id) INTO pl FROM wp_options; 
  9.     SELECT AVG(option_id) INTO pa FROM wp_options; 
  10. END; 
  11. CALL optionsrank(@pl,@ph,@pa) // 
  12. SELECT @pl,@ph,@pa // 
IN AND OUT 有传入和传出参数 
  1. CREATE PROCEDURE in_out_test( 
  2.     IN in_option_id INT, 
  3.     OUT out_option_value TEXT 
  4. ) 
  5. BEGIN  
  6.     SELECT option_value INTO out_option_value FROM wp_options WHERE option_id = in_option_id; 
  7. END; 
  8. CALL in_out_test(100,@out) // 
  9. SELECT @out // 
MySQL 创建计算字段 CONCATOracle ORA-00600: [dmlsrvColLenChk_2:dty] 错误原因及解决相关资讯      MySQL数据库教程 
  • MySQL 处理非法数据  (04/09/2013 08:06:28)
  • MySQL关于timestamp和mysqldump的  (12/16/2012 13:25:41)
  • MySQL保证数据完整性  (12/16/2012 12:00:35)
  • ERROR 1130: mysql 1130连接错误的  (12/16/2012 13:29:08)
  • MySQL数据库教程:管理数据库和表(  (12/16/2012 12:47:02)
  • MySQL快速插入大批量数据存储过程  (11/05/2012 19:04:04)
本文评论 查看全部评论 (0)
表情: 姓名: 字数