存儲函數和存儲過程不同的地方有以下幾點:
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$$