mysql创建存储过程及函数详解
⽬录
1. 存储过程
1.1. 基本语法
1.2 创建⼀个指定执⾏权限的存储过程
1.3 DELIMITER 的使⽤
2. 创建函数
1. 存储过程
1.1. 基本语法
create procedure name ([params])
UNSIGNED [characteristics] routine_body
mysql查看所有存储过程
params : in|out|inout 指定参数列表代表输⼊与输出
transport动词routine_body: SQL代码内容,以begin ........ end
characteristics:指定存储过程特性,包含5种
1 DETERMINISTIC 不确定的
2 NO SQL 没有SQl语句,当然也不会修改数据
3 READS SQL DATA 只是读取数据,当然也不会修改数据
4 MODIFIES SQL DATA 要修改数据
5 CONTAINS SQL 包含了SQL语句
1.2 创建⼀个指定执⾏权限的存储过程
create DEFINER=`root`@`%` procedure name ([params])
UNSIGNED [characteristics] routine_body上海it培训机构哪家好
web聊天DEFINER:指明谁有权⼒来执⾏。
1.3 DELIMITER 的使⽤
”DELIMITER //“ 表⽰设置“//”符号为结束语,因为mysql中默认语句结束为分号‘;',为了避免存储过程与mysql语句符号冲突,所以有时使⽤DELIMITER来改变结束语符号,要配合end //来使⽤;
⽰例:创建⼀个root账户执⾏的存储过程,输出给定字符串的长度
DELIMITER //vba checkbox属性
CREATE definer=`root`@`%` PROCEDURE `avgFruitPrice`(
in f_string VARCHAR(200)
)
BEGIN
select length(f_string);
END//
2. 创建函数
函数的创建与存储过程相同
⽰例
DELIMITER //
CREATE definer=`root`@`%` FUNCTION `my_length`(英语教学在线
f_string VARCHAR(200)
)
RETURNS INT(11)
UNSIGNED NO SQL
BEGIN
return length(f_string);
END//
注意: 创建函数需要注意3个地⽅,
1. RETURNS:需指定返回类型
2. UNSIGNED NO SQL 需指定存储过程特性
遇见的错误:
如报错如上信息就是没有指定存储过程特性。
存储过程函数中可以通过mysql查询结果为其参数复制:其语句为select .... into
begin
declare onename char(50) default‘0';
declare twoname char(50);
select f_name, b_name into onename, twoname from t_user where id =1;
.......
end//
说明:
declare: 存储过程及函数内部定义变量
default:默认值
到此这篇关于mysql创建存储过程及函数详解的⽂章就介绍到这了,更多相关mysql存储过程及函数内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论