Mysql 创建自定义函数

Mysql 创建自定义函数,第1张

在使用mysql的过程中,mysql自带的函数可能不能完成我们的业务需求,这时就需要自定义函数,

函数包括数学函数、字符串函数、日期和时间函数、条件判断函数、系统信息函数、加密函数、格式化函数等。通过这些函数,可以简化用户的 *** 作。

在MySQL——函数的使用方法与MySQL内部函数的使用方法一样。

语法:Create function function_name(参数列表)returns返回值类型

函数体 函数名,应合法的标识符,不应与系统关键字冲突。

一个函数应该属于某个数据库,可以使用db_name.funciton_name的形式执行当前函数所属数据库,否则为当前数据库。

参数部分,由参数名和参数类型组成。

返回值类类型.注意,一定要有return返回值语句。

创建第一个函数:

mysql>DROP FUNCTION IF EXISTS SP_FUNC_DBDH_ONE -- 删掉已存在函数 DELIMITER &&-- 定义分隔符,必须要有 ,本例为 &&可以为得数字符,例如: $$,%%,**

mysql>CREATE FUNCTION SP_FUNC_DBDH_ONE( PARA_VAR varchar(30)) -- 多个参数用,分割 参数

的类型必须是mysql列存在的类型

->RETURNS VARCHAR(100) -- 指定返回值类型,如果你不确定返回

文本长度,可以使用text

->BEGIN

->DECLARE NAYIBU_FIR VARCHAR(30) DEFAULT 'THIS IS MY FIRST,' -- 定义变量,设置默认值

->SET NAYIBU_FIR = concat(NAYIBU_FIR,PARA_VAR)

->RETURN NAYIBU_FIR-- 返回值

->END $$

后面有你在前面定义的分割符号

Query OK, 0 rows affected (0.00 sec)

mysql>DELIMITER &&

调用自定义函数,输出结果如下:

mysql>SELECT SP_FUNC_DBDH_ONE('PROGRAM')

+------------------------------+

| SP_FUNC_DBDH_ONE('PROGRAM') |

+------------------------------+

| 'THIS IS MY FIRST, PROGRAM|

+------------------------------+

1 row in set (0.00 sec)

DELIMITER $$

CREATE FUNCTION `ChkInsert`(in_pk int) returns int

begin

declare _count int

declare _returnValue int

set _count = 0

select count(列1) into _count from 你的表 where 列1 = in_pk

if _count >0 then

set _returnValue = 2

else

insert into 你的表 ( 列1 ) values ( in_pk )

set _returnValue = 0

end if

return _returnValue

end $$


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/6104645.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-14
下一篇 2023-03-14

发表评论

登录后才能评论

评论列表(0条)

保存