Mysql存储过程

什么是存储过程?为何要使用存储过程?如何使用存储过程?
<!--more-->

存储过程是什么

MySQL5 添加了对存储过程的支持,存储过程只适用于MySQL5+。

存储过程是多条SQL语句的集合,可以经过一个完整的动做实现连贯的SQL操做。mysql

存储过程为什么存在

  1. 简化复杂的操做
  2. 保证数据的完整性
  3. 简化对变更的管理
  4. 提升性能
  5. 可以编写更灵活的代码

存储过程如何使用

执行存储过程

CALL productpricing(
    1,  // 输入
    @avg // 输出 带有@ 的变量
);

SELECT @avg;

建立存储过程

CREAT PROCEDURE ordertotal(
    IN onumber INT,    // 输入 数据类型与建表的数据类型相同
    IN taxable BOOLEAN,  
    OUT ototal DECIMAL(8, 2) // 输出
) COMMENT 'COMMENT'  // 备注

-- Declare variable for total
DECLARE total DECIMAL(8, 2)  // 定义变量
-- Declare tax percentage
DECLARE taxrate INT DEFAULT 6

-- Get the order total
SELECT Sum(item_price*quantity)
FROM orderitems
WHERE order_num = onumber
INTO total;   // 结果注入变量

-- Is this taxable ?
IF taxable THEN       // 条件判断
  -- YES
  SELECT total+(total/100*taxrate) INTO total;
END IF;
  SELECT total INTO ototal;
END;

删除存储过程

DROP PROCEDURE productpricing;

检查存储过程

SHOW CREATE PROCEDURE ordertotal;

参考

  • 《MySQL必知必会》

原文连接git

相关文章
相关标签/搜索