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

相關文章
相關標籤/搜索