失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > mysql存储过程输入参数拆分_一文看懂mysql数据库存储过程 函数 视图 触发器 表...

mysql存储过程输入参数拆分_一文看懂mysql数据库存储过程 函数 视图 触发器 表...

时间:2018-11-03 21:51:11

相关推荐

mysql存储过程输入参数拆分_一文看懂mysql数据库存储过程 函数 视图 触发器 表...

概述

抽空总结一下mysql的一些概念性内容,涉及存储过程、函数、视图、触发器等。

一、查看存储过程、函数、视图、触发器、表

1、存储过程

select * from mysql.proc where type='PROCEDURE';show procedure status; show create procedure proc_name; //存储过程定义

2、函数

select * from mysql.proc where type='FUNCTION';show function status;show create function func_name; //函数定义

3、视图

SELECT * from information_schema.VIEWS SHOW CREATE VIEW 视图名

4、表

SELECT * from information_schema.TABLES show create table table_name;

5、触发器

SELECT * FROM information_schema.triggers;show create trigger trigger_name;

二、函数

mysql自定义函数就是实现程序员需要sql逻辑处理,参数是IN参数,含有RETURNS字句用来指定函数的返回类型,而且函数体必须包含一个RETURN value语句。

1、语法:

创建: CREATE FUNCTION 函数名称(参数列表)RETURNS 返回值类型函数体修改: ALTER FUNCTION 函数名称 [characteristic ...]删除: DROP FUNCTION [IF EXISTS] 函数名称调用: SELECT 函数名称(参数列表)

2、实例

CREATE DEFINER=`root`@`%` FUNCTION `getUnitChildList`(employeeCode VARCHAR(30)) RETURNS text CHARSET utf8BEGIN #最终返回的组织code字符串 DECLARE codeResult TEXT DEFAULT "-1"; #最终返回的组织id字符串 DECLARE result TEXT DEFAULT "-1"; #组织id的中间字符串 DECLARE sTempChd VARCHAR(10000); #最上层组织的字符串 DECLARE currentCode VARCHAR(10000) DEFAULT '-1'; #游标是否结束标识 DECLARE endFlag INT DEFAULT 0; #定义游标-unitCur,查询出当前员工拥有的所有岗位的组织code DECLARE unitCur CURSOR FOR SELECT DISTINCT pos.unit_code FROM hr_org_position_b pos LEFT JOIN hr_employee_assign ass ON pos.POSITION_CODE = ass.POSITION_CODE LEFT JOIN hr_employee HE ON he.EMPLOYEE_CODE = ass.EMPLOYEE_CODE WHERE he.EMPLOYEE_CODE = employeeCode AND ass.ENABLED_FLAG = 'Y' AND pos.ENABLED_FLAG = 'Y'; #结束set为1 DECLARE CONTINUE HANDLER FOR NOT FOUND SET endFlag = 1;#开始遍历游标 OPEN unitCur; REPEAT FETCH unitCur INTO currentCode; SET sTempChd = currentCode; #当前组织也加上 SET result=CONCAT(result,

如果觉得《mysql存储过程输入参数拆分_一文看懂mysql数据库存储过程 函数 视图 触发器 表...》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。