mysql函数创建与使用_mysql function函数创建与应用方法

这些语句创建存储子程序。要在MySQL 5.1中创建子程序,必须具有CREATE ROUTINE权限,并且ALTER ROUTINE和EXECUTE权限被自动授予它的创建者。如果二进制日志功能被允许,你也可能需要SUPER权限,请参阅20.4节,“存储子程序和触发程序的二进制日志功能”。

默认地,子程序与当前数据库教程关联。要明确地把子程序与一个给定数据库关联起来,可以在创建子程序的时候指定其名字为db_name.sp_name。

如果子程序名和内建的SQL函数名一样,定义子程序时,你需要在这个名字和随后括号中间插入一个空格,否则发生语法错误。当你随后调用子程序的时候也要插入。为此,即使有可能出现这种情况,我们还是建议最好避免给你自己的存储子程序取与存在的SQL函数一样的名字。

由括号包围的参数列必须总是存在。如果没有参数,也该使用一个空参数列()。每个参数默认都是一个IN参数。要指定为其它参数,可在参数名之前使用关键词 OUT或INOUT

注意: 指定参数为IN, OUT, 或INOUT 只对PROCEDURE是合法的。(FUNCTION参数总是被认为是IN参数)

RETURNS字句只能对FUNCTION做指定,对函数而言这是强制的。它用来指定函数的返回类型,而且函数体必须包含一个RETURN value语句

mysql教程> delimiter $$

mysql>

mysql> CREATE FUNCTION myFunction(

->         in_title VARCHAR(4),

->         in_gender CHAR(1),

->         in_firstname     VARCHAR(20),

->         in_middle_initial CHAR(1),

->         in_surname       VARCHAR(20))

->

->   RETURNS VARCHAR(60)

-> BEGIN

->   DECLARE l_title               VARCHAR(4);

->   DECLARE l_name_string         VARCHAR(60);

->

->   IF ISNULL(in_title)  THEN

->      IF in_gender='M' THEN

->         SET l_title='Mr';

->      ELSE

->         SET l_title='Ms';

->      END IF;

->   END IF;

->

->   IF ISNULL(in_middle_initial) THEN

->      SET l_name_string=CONCAT(l_title,' ',in_firstname,' ',in_surname);

->   ELSE

->      SET l_name_string=CONCAT(l_title,' ',in_firstname,' ',

->                           in_middle_initial,' ',in_surname);

->   END IF;

->

->   RETURN(l_name_string);

-> END$$

Query OK, 0 rows affected (0.00 sec)

mysql>

mysql> delimiter ;

mysql>

mysql> select myFunction('Mrs','M','First','Middle','Last');

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

| myFunction('Mrs','M','First','Middle','Last') |

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

| NULL                                          |

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

1 row in set, 1 warning (0.00 sec)

mysql>

mysql>

mysql> select myFunction(null,'M','First','Middle','Last');

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

| myFunction(null,'M','First','Middle','Last') |

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

| Mr First M Last                              |

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

1 row in set, 1 warning (0.00 sec)

mysql>

mysql> drop function myFunction;

Query OK, 0 rows affected (0.00 sec)

mysql>

mysql>

注:可能受到系统影响

受影响系统:

MySQL AB MySQL 4.1.5

MySQL AB MySQL 4.1.4

MySQL AB MySQL 4.1.3-beta

MySQL AB MySQL 4.1.3-0

MySQL AB MySQL 4.1.2-alpha

MySQL AB MySQL 4.1.0-alpha

MySQL AB MySQL 4.1.0-0

MySQL AB MySQL 4.0.9-gamma

MySQL AB MySQL 4.0.9

MySQL AB MySQL 4.0.8-gamma

MySQL AB MySQL 4.0.8

MySQL AB MySQL 4.0.7-gamma

MySQL AB MySQL 4.0.7

MySQL AB MySQL 4.0.6

MySQL AB MySQL 4.0.5a

MySQL AB MySQL 4.0.5

MySQL AB MySQL 4.0.4

MySQL AB MySQL 4.0.3

MySQL AB MySQL 4.0.21

MySQL AB MySQL 4.0.20

MySQL AB MySQL 4.0.2

MySQL AB MySQL 4.0.18

MySQL AB MySQL 4.0.15

MySQL AB MySQL 4.0.14

MySQL AB MySQL 4.0.13

MySQL AB MySQL 4.0.12

MySQL AB MySQL 4.0.11-gamma

MySQL AB MySQL 4.0.11

MySQL AB MySQL 4.0.10

MySQL AB MySQL 4.0.1

MySQL AB MySQL 4.0.0

不受影响系统:

MySQL AB MySQL 4.1.10a

MySQL AB MySQL 4.0.24

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/335630.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HH SaaS电商系统管理后台的商品规格编辑

类目规格删除或者新增 类目原来已有的规格被删除或者新增,那么原先的SKU全部需要重新生成,所以编辑时SKU信息无需展示,保留的规格信息也不必显示。 提交商品数据后,后端根据规格值名称进行匹配,如果匹配成功则更新SKU…

java中精确地小数_在Java等于方法中进行精确比较

java中精确地小数多年来,我一直在处理旧版Java代码,因此遇到了微妙的逻辑和性能问题,这些问题可以追溯到不正确覆盖的Object.equals(Object)方法。 尽管“等于”方法背后的概念看似简单,但Josh Bloch在《 有…

mysql删除完全重复数据库_MySQL中删除完全重复数据的准确SQL语句

案例:id姓名课程名称分数1张三数学692李四数学893张三数学69删除除了自动编号不同,其他都相同的学生冗余信息------------------------------------------------------------------------------------------------------按常理来说,这个sql语句应该是&am…

电商系统的商品规格设计方案

文章目录方案一方案二SKU 的规格值如何存储方案一 先维护一堆参数和规格,然后创建商品类目关联需要的参数和规格,这样发布该类目商品时,就可以填写相关的参数和规格了 查看交互原型 方案二 先维护一堆参数和规格,再维护类目属性…

flink和kafka区别_Apache Flink和Kafka入门

flink和kafka区别介绍 Apache Flink是用于分布式流和批处理数据处理的开源平台。 Flink是具有多个API的流数据流引擎,用于创建面向数据流的应用程序。 Flink应用程序通常使用Apache Kafka进行数据输入和输出。 本文将指导您逐步使用Apache Flink和Kafka。 先决条件…

solr cloud 更新 solrconfig 配置_Solr各版本新特性「4.x,5.x,6.x,7.x」

一.Solr4.x新特性1.近实时搜索Solr的近实时搜索【Near Real-Time,NRT】功能实现了文档添加到搜索的快速进行,以应对搜索快速变化的数据。2.原子更新与乐观并发原子更新功能允许客户端应用对已有文档上进行添加、更新、删除和对字段增值等操作&#xff0c…

电商系统的商品流水记录

商品销售流水 销售单变成“归档”之后,系统生成相关商品的销售流水记录,这里要考虑退货扣减的问题也可以不生成相应的流水记录,直接从销售子单取相关数据显示即可 商品出库流水 出库单变成“已出库”后,系统生成相关商品的出库…

junit数据驱动测试_使用Junit和Easytest进行数据驱动的测试

junit数据驱动测试在本文中,我们将看到如何使用Junit进行数据驱动的测试。 为此,我将使用一个名为EasyTest的库。 我们知道,对于TestNG,它已内置了数据提供程序。 通过简单的测试,我们可以使用Junit进行数据驱动的测试…

centos rpm安装mysql5.5_CentOS下以RPM方式安装MySQL5.5

首先去mySQL官网下载页面:http://dev.mysql.com/downloads/mysql/#downloadsSelect Platform 选择 Oracle & Red Hat Linux 4 & 5分别下载以下三个文件(由于我的机器是32位,下面是32位版本的包,如果你的机器是64位的请下载64位版本)…

HH SaaS电商系统的出库功能模块设计

文章目录出库单业务流程基本流程扩展流程找不到符合条件的仓库,要求部分退款(未生成出库单时)找不到符合条件的仓库,全部退款(未生成出库单时)找不到符合条件的仓库,等待库存补足(未…

java 拼图_拼图项目的诅咒:为什么Java 9一遍又一遍地延迟?

java 拼图JDK 9发行日期推迟到2017年7月 距JDK 9发行不到200天,它又被推迟了 。 新的发布日期已更新为2017年7月,比之前推迟的日期晚了四个月。 推迟日期 9月13日,Oracle Java平台小组的首席架构师Mark Reinhold发表了他的建议,…

mysql数据库增删改查关键字_mysql数据库的增删改查

数据库基本操作:增删改查#DML语言/*数据操作语言:插入:insert修改:update删除:delete*/1.增插入语句的方式一表已经存在啦,我们需要往里面插入数据/*语法:insert into 表名(列名,…) values(值1…

HH SaaS电商系统的采购功能模块设计

文章目录如何生成采购单系统生成采购单的流程基本流程扩展流程找不到符合条件的供应商,要求部分退款(初次生成采购单时)找不到符合条件的供应商,要求全部退款(初次生成采购单时)指定供应商的库存不足&#…

本地缓存防止缓存击穿_防止缓存爆炸的快速提示

本地缓存防止缓存击穿在很多情况下,您都可以从应用程序中的常用对象缓存中受益,特别是在面向Web和微服务的环境中。 您可以在Java中执行的最简单的缓存类型可能是引入一个私有HashMap,在计算对象之前先查询该哈希表,以确保您不会重…

php mysql导出csv文件_详解PHP导入导出CSV文件

我们先准备mysql数据表,假设项目中有一张记录学生信息的表student,并有id,name,sex,age分别记录学生的姓名、性别、年龄等信息。CREATE TABLE student (id int(11) NOT NULL auto_increment,name varchar(50) NOT NULL…

HH SaaS电商系统的入库功能模块设计

文章目录创建入库单的场景创建入库单的业务流程商品直接入库内部仓退货入库(内部仓)换货入库(内部仓)退货入库(外部仓)换货入库(外部仓)备货入库(内部仓)备货…

aws ecr_在ECR上推送Spring Boot Docker映像

aws ecr在先前的博客中,我们将Spring Boot应用程序与EC2集成在一起。 它是您可以在Amazon Web Services上进行的最原始的部署形式之一。 在本教程中,我们将使用我们的应用程序创建一个docker映像,该映像将存储到Amazon EC2容器注册表中 。 …

HH SaaS电商系统的商品营销角标功能模块设计

1、角标只属于商城,自营店铺共享商城的角标,第三方店铺可以申请角标 2、角标跟着素材模板走,关联素材模板id,一对多关系

python为什么这么小_同样是 Python,怎么区别这么大

发现问题上周,我的测试同事告诉我,你的用户名怎么还允许中文啊?当时我心里就想,你们测试肯定又搞错接口了,我用的是正则\w过滤了参数,怎么可能出错,除非Python正则系统出错了,那是不…

dynamodb容器使用_使用DynamoDBMapper扫描DynamoDB项目

dynamodb容器使用之前,我们介绍了如何使用DynamoDBMapper或底层Java api查询DynamoDB数据库。 除了发出查询之外,DynamoDB还提供扫描功能。 扫描的目的是获取您在DynamoDB表上可能拥有的所有项目。 因此,扫描不需要任何基于我们的分区键或…