MySQL 修改預存程序的參數與內容

預存程序部署到線上資料庫之後, 難免會因為規格修改, 而需要更動參數或內容, 這時候就會驚喜地發現, 原來 MySQL 的 ALTER PROCEDURE 無法修改參數或內容的定義. 雖然很難接受這個事實, 但是人在屋簷下, 也不得不低頭.

那該怎麼做呢? 只能用先刪除再建立預存程序的方法:

USE MyDB;

DROP PROCEDURE IF EXISTS pr_MyStoredProcedure;

DELIMITER //

CREATE PROCEDURE pr_MystoredProcedure(parm_1, ...)
BEGIN
   ...
END //

DELIMITER ;

已經跟 RDBMS 打交道過一陣子的人, 就會知道上面的程序, 在應用系統負載重的時候, 是會出亂子的.

因此為了避免應用系統突然出現錯誤或效能出現問題, 建議跟開發團隊一起審查該預存程序的使用情境與頻率, 如果可能的話視情況建議開發團隊使用比較安全的上線程序.

參考資料

發佈留言

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料