存儲函數和存儲過程不同的地方有以下幾點:
1.函數的參數列表中模式只能為IN。
2.函數必須返回一個值,它的類型被定義於函數的頭部
3.函數能被SQL語句所調用
4.函數可能不返回任何結果集
DELIMITER $$
DROP FUNCTION IF EXISTS discount_price$$
CREATE FUNCTION discount_price
normal_price NUMERIC(8, 2)
RETURN NUMERIC(8, 2)
DETERMINISTIC
BEGIN
DECLARE v_discount_price NUMERIC(8, 2);
IF (normal_price > 500) THEN
SET discount_price = normal_price * .8;
ELSE IF (normal_price > 1000) THEN
SET discount_price = normal_price * .9;
ELSE
SET discount_price = normal_price;
END IF;
RETURN (discount_price);
END$$