1. 程式人生 > >MYSQL PL/SQL

MYSQL PL/SQL

mysql pl/sql

一組SQL語句集,速度快,只有首次執行需經過編譯和優化步驟,後續被調用可以直接執行

Sample:

DROP PROCEDURE IF EXISTS `proc_adder`;

DELIMITER &&

CREATE DEFINER=`root`@`localhost` PROCEDURE `proc_adder`(IN a int, IN b int, OUT sum int)

BEGIN

DECLARE c int;

/*DECLARE c int DEFAULT 10*/

if a is null then set a = 0;

end if;

if b is null then set b = 0;

end if;
set sum = a + b;

END

&&

DELIMITER ;


說明:

DEFINER: 創建者

DECLARE: 定義變量

SET:為變量賦

SELECTINTO語句為變量賦值如下:

SELECT col_name[,] INTO var_name[,]

FROM table_name WEHRE condition

DELIMITER

MySQL中默認的語句結束符為分號(;)。存儲過程中的SQL語句需要分號(;)來結束。為了避免沖突,首先用"DELIMITER &&"MySQL的結束符設置為&&。最後再用"DELIMITER ;"

來將結束符恢復成分號。這與創建觸發器時是一樣的。


常用語法:

IF:

IF type = 0 THEN

set c = ‘param is 0‘;

ELSEIF type = 1 THEN

set c = ‘param is 1‘;

ELSE

set c = ‘param is others, not 0 or 1‘;

END IF;

CASE:

CASE type

WHEN 0 THEN

set c = ‘param is 0‘;

WHEN 1 THEN

set c = ‘param is 1‘;

ELSE

set c = ‘param is others, not 0 or 1‘;

END CASE;

WHILE:

DECLARE i int;

DECLARE s int;

SET i = 0;

SET s = 0;

WHILE i <= n DO

set s = s + i;

set i = i + 1;

END WHILE;

本文出自 “小小碼農” 博客,請務必保留此出處http://daoqingyu.blog.51cto.com/5185063/1950443

MYSQL PL/SQL