यदि हमारे पास प्रोसीजर के लिए ALTER ROUTINE विशेषाधिकार हैं तो ALTER PROCEDURE स्टेटमेंट की मदद से हम MySQL स्टोर्ड प्रोसीजर को अल्टर कर सकते हैं। इसे दर्शाने के लिए हम 'delete_studentinfo' नामक एक स्टोर्ड प्रोसीजर का उदाहरण ले रहे हैं जिसका निम्न CREATE स्टेटमेंट है:
mysql> SHOW CREATE PROCEDURE Delete_studentinfo\G
*************************** 1. row ***************************
Procedure: Delete_studentinfo
sql_mode: ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
Create Procedure: CREATE DEFINER=`root`@`localhost` PROCEDURE `Delete_studentinfo`( IN p_id INT)
BEGIN DELETE FROM student_info WHERE ID=p_id; END
character_set_client: cp850 collation_connection: cp850_general_ci
Database Collation: latin1_swedish_ci
1 row in set (0.01 sec)
उपरोक्त परिणाम सेट में, यह स्पष्ट है कि 'delete_studentinfo' स्टोर्ड प्रोसीजर में कोई टिप्पणी नहीं है। अब, ALTER PROCEDURE स्टेटमेंट की मदद से, हम एक टिप्पणी जोड़ सकते हैं:
mysql> ALTER PROCEDURE Delete_studentinfo
-> COMMENT 'deleting the record'//
Query OK, 0 rows affected (0.03 sec)
अब, इसकी पुष्टि की जा सकती है कि निम्न क्वेरी के परिणाम सेट की मदद से स्टोर्ड प्रोसीजर में टिप्पणी जोड़ी गई है:
mysql> SHOW CREATE PROCEDURE Delete_studentinfo\G
*************************** 1. row ***************************
Procedure: Delete_studentinfo
sql_mode: ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
Create Procedure: CREATE DEFINER=`root`@`localhost` PROCEDURE `Delete_studentinfo`( IN p_id INT)
COMMENT 'deleting the record'
BEGIN DELETE FROM student_info WHERE ID=p_id; END
character_set_client: cp850 collation_connection: cp850_general_ci
Database Collation: latin1_swedish_ci
1 row in set (0.00 sec)