mysql 存储过程

创建存储过程

删除已经存在的存储过程

drop procedure if exists procedure_name;

设置分割符

DELIMITER //
create procedure procedure_name(IN id INT)
begin
-- start transaction

-- 执行的 SQL

-- commit;
-- rollback

end //
DELIMITER ; -- 这里有空格

首先改变默认的分隔符为 // 来作为存储过程结束的标识,随后再恢复默认值。

参数限制

in: 给参数传入值,定义的参数就得到了值
out: 模式定义的参数只能在过程体内部赋值,表示该参数可以将某个值传递回调用他的过程(在存储过程内部,该参数初始值为 null,无论调用者是否给存储过程参数设置值)
inout: 调用者还可以通过 inout 参数传递值给存储过程,也可以从存储过程内部传值给调用者

参数类型

MySQL 所有数据类型
int
tinyint
float
decimal
varchar
...

FIND_IN_SET(str,strlist) 如果字符串str是在的strlist组成的N子串的字符串列表,返回值的范围为1到N
SELECT FIND_IN_SET('1','1,2,3,4,5');

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 转载自这里 存储过程简介 我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Sto...
    杜七阅读 2,426评论 4 27
  • 原文链接 MySQL存储过程详解 1.存储过程简介 我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然...
    亚斯咪妮阅读 2,692评论 1 30
  • 转载自-> 记录MYSQL存储过程中的关键语法:DELIMITER //声明语句结束符,用于区分;CREATE P...
    风亡小窝阅读 70,638评论 5 78
  • 任务需求:定时执行的任务,调用存储过程,进行数据迁移。 存储过程相关总结:(存储过程的创建 不能伴随有if exi...
    时待吾阅读 3,154评论 0 4
  • 1.1 创建存储过程 MySQL中,创建存储过程的基本形式如下: CREATEPROCEDUREsp_name([...
    95年的哈密瓜阅读 470评论 0 4