ALTER ROUTINE প্রিভিলেজ থাকলে ALTER FUNCTION কোয়েরি দিয়ে স্টোরড ফাংশন পরিবর্তন করা যায়। সিনট্যাক্স:
সিনট্যাক্স
ALTER FUNCTION function_name [characteristic ...]
characteristic:
{ CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }
| SQL SECURITY { DEFINER | INVOKER }
| COMMENT 'string'
এখানে function_name হল পরিবর্তন করতে চাওয়া ফাংশনের নাম। ALTER FUNCTION দিয়ে কেবল ক্যারেক্টারিস্টিক (characteristics) পরিবর্তন করা যায়, প্যারামিটার বা ফাংশন বডি পরিবর্তন করা যায় না।
উদাহরণ
factorial ফাংশনে কমেন্ট যোগ:
mysql> ALTER FUNCTION factorial COMMENT 'Can accept fraction values';
Query OK, 0 rows affected (0.00 sec)
mysql> SHOW CREATE FUNCTION factorial\G
*************************** 1. row ***************************
Function: factorial
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 Function: CREATE DEFINER=`root`@`localhost` FUNCTION `factorial`(n DECIMAL(3,0)) RETURNS decimal(20,0) DETERMINISTIC COMMENT 'Can accept fraction values'
BEGIN
DECLARE factorial DECIMAL(20,0) DEFAULT 1;
DECLARE counter DECIMAL(3,0);
SET counter = n;
factorial_loop: REPEAT
SET factorial = factorial * counter;
SET counter = counter - 1;
UNTIL counter = 1 END REPEAT;
RETURN factorial;
END
character_set_client: cp850
collation_connection: cp850_general_ci
Database Collation: latin1_swedish_ci
SHOW CREATE FUNCTION-এ কমেন্ট যোগ হয়ে গেছে দেখা যাচ্ছে।