MySQL存儲過程和存儲過程中循環小結 |
發布時間: 2012/9/1 17:37:08 |
直接上內容 第一:存儲過程中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 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 // 本文出自:億恩科技【www.artduck.net】 |