理解MySQL存储过程和函数

2019-01-04 15:11:21丽君

比如:CREATE DEFINER=`username`@`%` READS SQL DATA FUNCTION `fn_getitemclock`(i_itemid bigint,i_clock int,i_pos int) RETURNS int(11)...
这样一来相当于明确的告知MySQL服务器这个函数不会修改数据,因此可以在开启了log-bin的服务器上安全的创建并被复制到开启了log-bin的slave上。

修改存储过程函数语法

ALTER {PROCEDURE | FUNCTION} sp_name [characteristic ...] characteristic: { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA } | SQL SECURITY { DEFINER | INVOKER } | COMMENT 'string'

删除存储过程函数语法

DROP {PROCEDURE | FUNCTION} [IF EXISTS] sp_name

查看存储过程和函数

1.查看存储过程状态

SHOW {PROCEDURE | FUNCTION} STATUS [LIKE 'pattern'] show procedure status like 'Pro_Employee' G

2.查看存储过程和函数的创建语法

SHOW CREATE {PROCEDURE | FUNCTION} sp_name SHOW CREATE PROCEDURE Pro_Employee G;

3.查看存储过程和函数详细信息

SELECT * FROM information_schema.ROUTINES WHERE ROUTINE_NAME='Pro_Employee' G;

总结 

 存储过程和函数语法不难理解,但是往往存储过程中不单单只包含这种简单的查询语法,还会嵌套循环语句、变量、报错处理、事务等,下一篇文章会单独讲变量,将变量的知识加入到存储过程,包括变量的声明和报错处理,欢迎关注。

您可能感兴趣的文章:

Mysql row number()排序函数的用法和注意mysql常用日期时间/数值函数详解(必看)MySQL常用聚合函数详解PHP下使用mysqli的函数连接mysql出现warning: mysqli::real_connect(): (hy000/1040): ...PHP操作MySQL的mysql_fetch_* 函数的常见用法教程借助PHP的mysql_query()函数来创建MySQL数据库的教程MySQL存储过程中的基本函数和触发器的相关学习教程MySQL中的常用函数