MySQL 如何修改MySQL存储函数?

MySQL 如何修改MySQL存储函数?

如果我们拥有ALTER ROUTINE特权,则可以使用ALTER FUNCTION查询来修改MySQL存储函数。其语法如下。

阅读更多:MySQL 教程

语法

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语句可以更改存储函数中定义的特性。我们可以在ALTER FUNCTION语句中指定多个更改。但是我们不能使用此语句更改函数的参数或主体。为了说明这一点,在以下示例中,我们将在函数名’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
1 row in set (0.00 sec)

从CREATE FUNCTION查询中,可以看出注释已添加到函数’factorial’的定义中。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程