MySQL中的儲存過程可以接受參數,這些參數可以通過調用儲存過程時傳遞給它。在介紹默認參數值之前,我們先來看看如何定義一個簡單的儲存過程:
DELIMITER $$ CREATE PROCEDURE myFirstProcedure() BEGIN SELECT 'Hello World!' AS message; END$$ DELIMITER ;
以上代碼創建了一個名為myFirstProcedure
的儲存過程,該過程不接收任何參數,調用時會輸出一個'Hello World!'
的消息。如果我們想要讓儲存過程接收參數,需要在創建過程時使用IN
關鍵字定義:
DELIMITER $$ CREATE PROCEDURE mySecondProcedure(IN inParam varchar(255)) BEGIN SELECT CONCAT('Your input: ', inParam) AS message; END$$ DELIMITER ;
以上代碼創建了一個名為mySecondProcedure
的儲存過程,該過程接收一個varchar
類型的參數,并將其拼接到一個消息中輸出。調用該過程時需要通過參數傳遞一個字符參數。當我們需要每次調用過程時都傳遞同樣的參數時,就可以使用默認參數值。
定義默認參數值可以在創建儲存過程時使用DEFAULT
關鍵字:
DELIMITER $$ CREATE PROCEDURE myThirdProcedure(IN inParam varchar(255) DEFAULT 'No parameter') BEGIN SELECT CONCAT('Your input: ', inParam) AS message; END$$ DELIMITER ;
以上代碼創建了一個名為myThirdProcedure
的儲存過程,該過程接收一個varchar
類型的參數,默認值為'No parameter'
。如果調用該過程時沒有傳遞參數,將使用默認值輸出消息。
在定義默認參數值時,需要注意以下幾點:
- 默認參數值只能在參數列表的最后定義。
- 可以定義多個參數的默認值,這些默認值可以是不同的數據類型。
- 如果儲存過程定義了多個參數,默認參數值必須為每個未指定的參數設置才能正常工作。