預存程序部署到線上資料庫之後, 難免會因為規格修改, 而需要更動參數或內容, 這時候就會驚喜地發現, 原來 MySQL 的 ALTER PROCEDURE 無法修改參數或內容的定義. 雖然很難接受這個事實, 但是人在屋簷下, 也不得不低頭.
那該怎麼做呢? 只能用先刪除再建立預存程序的方法:
USE MyDB;
DROP PROCEDURE IF EXISTS pr_MyStoredProcedure;
DELIMITER //
CREATE PROCEDURE pr_MystoredProcedure(parm_1, ...)
BEGIN
...
END //
DELIMITER ;
已經跟 RDBMS 打交道過一陣子的人, 就會知道上面的程序, 在應用系統負載重的時候, 是會出亂子的.
因此為了避免應用系統突然出現錯誤或效能出現問題, 建議跟開發團隊一起審查該預存程序的使用情境與頻率, 如果可能的話視情況建議開發團隊使用比較安全的上線程序.