博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MySQL存储过程
阅读量:7065 次
发布时间:2019-06-28

本文共 1695 字,大约阅读时间需要 5 分钟。

  hot3.png

MySQL存储过程

存储过程

定义存储过程

delimiter ;;create procedure get_user_count()begin	select count(*) as user_count from sys_user;end;;delimiter;

关于分隔符

MySQL语句分隔符为;,MySQL命令行程序也使用;作为语句分隔符。如果通过命令行执行存储过程会解释存储过程自身内的;字符,会使存储过程中的SQL出现语法错误。

调用存储过程

call get_user_count();

删除存储过程

drop procedure get_user_count;

使用参数

参数中有out

-- 使用参数-- in 传递到存储过程-- out 从存储过程传出-- inout 对存储过程传入和传出delimiter ;;create procedure get_count(	out user_count int(10),	out role_count int(10),	out dict_count int(10))begin	select count(*) into user_count from sys_user;	select count(*) into role_count from sys_role;	select count(*) into dict_count from sys_dict;end;;delimiter ;-- 调用-- 所有MySQL变量都必须以@开始-- 不能通过一个参数返回多个行和列call get_count(@user_count, @role_count, @dict_count);select @user_count, @role_count, @dict_count;

参数中有in有out

drop procedure if exists get_user_by_name;delimiter ;;create procedure get_user_by_name(	in user_name varchar(45),	out user_id int(10))begin	select id from sys_user where user_name = user_name limit 1 into user_id;end;;delimiter ;-- 调用call get_user_by_name('admin', @admin_id);select @admin_id;

复杂一点的

-- comment 给存储过程加注释-- 定义delimiter ;;create procedure insert_user(	in userName varchar(50),	in defaultPass boolean,	out userId int) comment 'create user'begin	declare pass varchar(50) default null;		if defaultPass then		set pass = '123456';	end if;		insert into sys_user(user_name, user_password, create_time) 	values (userName, pass, now());	select LAST_INSERT_ID() into userId;end;;delimiter ;-- 调用call insert_user('张三', false, @userId1);call insert_user('李四', true, @userId2);select @userId1, @userId2;select id, user_name, user_password, create_time from sys_user;

转载于:https://my.oschina.net/yysue/blog/3004407

你可能感兴趣的文章
nodejs最酷炫的模块——child_process - 子进程
查看>>
一键下载:将知乎专栏导出成电子书
查看>>
专栏开篇序——那些年我们用过的“轮子”
查看>>
QQ跳转支付宝领红包,一步到位,无需调用浏览器~附源码和演示动图
查看>>
125. 验证回文串
查看>>
Lombok注解笔记
查看>>
构建静态页面 之 [ 表格 ]
查看>>
ES6走走看看—字符到底发生了什么变化
查看>>
Java基本问题
查看>>
Hexo搭建GitHub博客—打造炫酷的NexT主题--高级(三)
查看>>
内部技术分享PPT ------ “小程序入门”
查看>>
一款小程序增强开发工具 - EWA
查看>>
基于vue2.X的webpack基本配置(手动版~)
查看>>
观察者模式
查看>>
《Thinking in Android》 - 博客索引(Android 9.0)
查看>>
【开源】Tsar——灵活的系统和应用采集软件
查看>>
async/await 并行请求和错误处理
查看>>
深入浅出 Node ( 二 ) 模块机制
查看>>
【跃迁之路】【493天】刻意练习系列252(2018.06.13)
查看>>
TiDB 在威锐达 WindRDS 远程诊断及运维中心的应用
查看>>