Nếu chúng tôi có đặc quyền ALTER ROUTINE cho quy trình thì với sự trợ giúp của ALTER PROCEDURE tuyên bố chúng ta có thể thay đổi một thủ tục lưu trữ MySQL. Để chứng minh điều đó, chúng tôi đang lấy một ví dụ về một thủ tục được lưu trữ có tên là ‘delete_studentinfo’ có câu lệnh tạo sau đây -
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)
Trong tập kết quả trên, rõ ràng là không có chú thích nào trong thủ tục được lưu trữ ‘delete_studentinfo’. Bây giờ, với sự trợ giúp của câu lệnh ALTER PROCEDURE, chúng ta có thể thêm nhận xét như sau -
mysql> ALTER PROCEDURE Delete_studentinfo -> COMMENT 'deleting the record'// Query OK, 0 rows affected (0.03 sec)
Bây giờ, có thể xác nhận rằng các nhận xét đã được thêm vào thủ tục được lưu trữ, với sự trợ giúp của tập kết quả của truy vấn sau -
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_studen tinfo`( 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)