mysql 定义函数
时间: 2023-10-13 15:03:59 浏览: 107
MySQL 中可以使用 `CREATE FUNCTION` 语句来定义函数。下面是一个示例:
```mysql
CREATE FUNCTION function_name ([parameter1 type, parameter2 type, ...])
RETURNS return_type
[DETERMINISTIC]
BEGIN
-- 函数体逻辑
-- 可以包含 SQL 语句、流程控制语句等
END;
```
其中,`function_name` 是函数的名称,`parameter1, parameter2, ...` 是函数的参数列表,每个参数都包括参数名称和参数类型。`return_type` 是函数返回值的类型。
关键字 `DETERMINISTIC` 可选,用于指示函数是否是确定性的。确定性函数在给定相同的输入时会始终返回相同的结果,这对于函数的优化和缓存很重要。
函数体内可以包含各种 SQL 语句,如 SELECT、INSERT、UPDATE 等,以及流程控制语句如 IF、CASE、LOOP 等。
以下是一个简单的示例,定义了一个计算两个数之和的函数:
```mysql
CREATE FUNCTION sum(x INT, y INT)
RETURNS INT
BEGIN
DECLARE result INT;
SET result = x + y;
RETURN result;
END;
```
使用 `CREATE FUNCTION` 定义函数后,可以在查询中直接调用该函数。例如:
```mysql
SELECT sum(5, 3);
```
这将返回结果 8。
阅读全文