标签:begin 存储 运行 ges 函数 默认 oca fine log
简单的说,就是一组SQL语句集,功能强大,可以实现一些比较复杂的逻辑功能,类似于JAVA语言中的方法;
ps:存储过程跟触发器有点类似,都是一组SQL集,但是存储过程是主动调用的,且功能比触发器更加强大,触发器是某件事触发后自动调用
## 如果已经存在 则删除 drop procedure if exists proc_addre; delimiter ;; ## 把默认的输入的结束符;替换成;; ## 创建一个 求和的 存储过程 ## DEFINER 创建者 可以省略 DEFINER=‘root‘@‘localhost‘ 默认当前登录人 CREATE DEFINER=‘root‘@‘localhost‘ PROCEDURE proc_addre(IN a int, IN b int, OUT sum int) BEGIN 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 ; SET @b=5; ## 定义变量 b=5 CALL proc_addre(2, @b, @s); ## 运行存储过程 SELECT @s as sum; ## 打印 s 变量
## 存储过程 IF 语句 DROP PROCEDURE IF EXISTS proce_if; delimiter ;; CREATE PROCEDURE porce_if (IN type INT) BEGIN ## begin end; 是存储过程的块标示方法,类似PHP函数中的 { } declare c VARCHAR(100); ## 定义一个 变长字符串 c 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; SELECT c ; END;; delimiter; CALL porce_if(1);
## 存储过程 case 语句 感觉有点像 PHP 中的 switch 语句 DROP PROCEDURE IF EXISTS proce_case; delimiter ;; CREATE PROCEDURE proce_case (IN type INT) BEGIN ## begin end; 是存储过程的块标示方法,类似PHP函数中的 { } declare c VARCHAR(100); ## 定义一个 变长字符串 c 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; SELECT c; END;; delimiter; CALL proce_case(1);
标签:begin 存储 运行 ges 函数 默认 oca fine log
原文地址:http://www.cnblogs.com/shaoshao/p/6649815.html