存储函数是一个比较大的概念:存储程序的一部分(另外一部分是存储过程)。存储程序可以让我们把一系列代码保存到MySQL服务器内,然后根据需要调用代码。存储程序是可以拥有自己的变量的(为局部变量)。声明变量使用DECLARE语句:
DECLARE var_name var_type
其类型应对应于MySQL的数据类型:
DECLARE var1 INT
DECLARE var2 VARCHAR(20)
声明变量的限制:
1、声明必需位于BEGIN...END的代码块内
2、声明语句必需紧跟在BEGIN后
在声明变量后,就可以利用SET对其赋值:
SET name = value
注意:这些变量并不像PHP变量那样以美元符号开始
在代码块中,每个语句都以分号(;)结束。这样会产生问题的:当我们使用mysql命令行或者一些mysql客户端时,它会把分号理解为语句的结束并且立即执行它。为了防止这种情况,我们可以把标记结束的分隔符(默认为分号)改为其他符号:
DELIMITER $$
一旦结束了函数的定义,可以将分隔符改回来:
DELIMITER ;
示例程序:
总结一下:在数据库中创建存储函数,要先修改默认的分隔符(;)为其他,在函数定义完之后再改回来。存储函数是会关联一个特点的数据库的,我们不能用存储函数来选择数据库,同时,如果销毁了数据库,那么也销毁了与之关联的存储函数。