Mysql存储过程

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

存储过程是什么

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

存储过程是多条SQL语句的集合,能够通过一个完整的动作实现连贯的SQL操作。

存储过程为何存在

  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必知必会》

原文链接

相关推荐