语法: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 $$  -- 定义分隔符,必须要有 ,本例为 && 可以为得数字符,例如: $$,%%,**

USE `topsale`$$

DROP FUNCTION IF EXISTS `func_getMaxIncentiveReward`$$ -- 删掉已存在函数 

CREATE DEFINER=`root`@`%` FUNCTION `func_getMaxIncentiveReward`(z_product_line VARCHAR(100),z_monthly VARCHAR(100),country_id INT(11),z_qtyCompletion INT(11))
RETURNS INT(11) -- 指定返回值类型,如果你不确定返回文本长度,可以使用text
BEGIN
DECLARE z_maxIncentiveReward INT DEFAULT 0; -- 定义变量,设置默认值
SELECT MAX(inp.Amt_reward) INTO z_maxIncentiveReward FROM incentive_policy inp,user_login ul WHERE inp.product_line = z_product_line
AND inp.Expiration_date = z_monthly AND inp.user_id = ul.user_login_id AND ul.party_id=country_id AND inp.class_id = 2
AND inp.qty_completion_rate <= z_qtyCompletion;
RETURN z_maxIncentiveReward; -- 返回值
END$$ DELIMITER ;

MySQL 创建自定义函数的更多相关文章

  1. mysql创建自定义函数与存储过程

    mysql创建自定义函数与存储过程 一 创建自定义函数 在使用mysql的过程中,mysql自带的函数可能不能完成我们的业务需求,这时就需要自定义函数,例如笔者在开发过程中遇到下面这个问题 mysql ...

  2. MySQL 创建自定义函数(2)

    说明:下面创建一个函数,调用自定义函数返回一个返回一个随机数. (1) 创建自定义函数

  3. MySQL 创建自定义函数(1)

    1. 创建测试自定义函数(1) CREATE DEFINER=`dbdh`@`localhost` FUNCTION `test`.`sp_function_dbdh_three`() RETURNS ...

  4. MySQL(六) —— 自定义函数

    自定义函数 用户自定义函数(user-defined function, UDF)是一种对MySQL扩展的途径,其用法与内置函数相同. 参数,返回值 创建自定义函数 CREATE FUNCTION f ...

  5. navicat与phpmyadmin做mysql的自定义函数和事件

    自定义函数和事件是mysql一个很方便的功能,navicat在5.1以上版本就支持了自定义函数和事件,phpmyadmim不清楚. 用这个是由于一些简单的事情,没有必要去做一个服务器计划使用 接下来我 ...

  6. Mysql - 存储过程/自定义函数

    在数据库操作中, 尤其是碰到一些复杂一些的系统, 不可避免的, 会用到函数/自定义函数, 或者存储过程. 实际项目中, 自定义函数和存储过程是越少越好, 因为这个东西多了, 也是一个非常难以维护的地方 ...

  7. 扩展JMeter - 创建自定义函数 - String Joiner (翻译)

    JMeter是测试自动化社区中最好的开源工具之一.它提供了所有可能的扩展,可以快速提供我们的测试脚本.为了让我们的生活更轻松,它还让我们通过实现几个接口来提出我们自己的插件. 在本文中,让我们看看如何 ...

  8. 题目要求:传入数组 内容为[['lisi','男','27'],['wangwu','男',18],['zhaoliu','男','30']],将此二维数组转化为一维数组,创建自定义函数完成

    //自定义函数 function getOne($arr){ $str = ''; //定义空的字符串,用来接收值 foreach ($arr as $key=>$value){ //循环遍历数 ...

  9. MySQL下创建序列及创建自定义函数方法介绍

    工作过程中需要将基于DB2数据库的应用以及数据迁移到MySQL中去,在原应用中,大量使用了SEQUENCE,考虑尽量减少代码的修改,决定在迁移后的应用中继续保留SEQUENCE的使用,这就要求在MyS ...

随机推荐

  1. 学习笔记之pandas

    Python Data Analysis Library — pandas: Python Data Analysis Library https://pandas.pydata.org/ panda ...

  2. [UE4]Replications,复制

    关于进程 1.进程:运行中的程序 虚幻4游戏进程的四种网络模式 1.StandAlone:单机模式,不联网 2.Client,网络游戏中的客户端. 3.ListenServer,服务器和一个客户端 4 ...

  3. [UE4]GameMode和GameInstance

    1.GameMode与场景的生命周期是相同的.使用OpenLevel切换到另外一个场景,第一个场景的GameMode就会被销毁,然后场景第二个场景的GameMode 2.GameInstance与进程 ...

  4. 必须熟练掌握的150个Linux命令

  5. matplotlib基础知识全面解析

    图像基本知识: 通常情况下,我们可以将一副Matplotlib图像分成三层结构: 1.第一层是底层的容器层,主要包括Canvas.Figure.Axes: 2.第二层是辅助显示层,主要包括Axis.S ...

  6. 转]GSM模块信号强度CSQ与RSSI的对应关系

    使用GSM或者3G模块时,都会接触到信号强度CSQ.通过指令AT+CSQ,模块返回当前的信号质量,例如: AT+CSQ +CSQ: 28,0 其中28就是信号强度CSQ,但它不是真实的CSQ,他应该叫 ...

  7. 三种方式控制GPIO

    BBB为REV C,emmc4G版本,系统为Debian 7.9 wheezy (2015.11.12),内核为Linux 3.8.13.使用命令cat /etc/dogtag查看 查看系统信息的四种 ...

  8. echart力导向图

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="GBK" ...

  9. c#线程间传递参数

    线程操作主要用到Thread类,他是定义在System.Threading.dll下.使用时需要添加这一个引用.该类提供给我们四个重载的构造函数(以下引自msdn).        Thread (P ...

  10. spring boot controller设置 @Transactional 不回滚的解决办法

    @Transactional @ApiOperation(value = "添加一个用户信息") @RequestMapping(value = "/create&quo ...