MySQL数据库——MySQL修改存储过程(ALTER PROCEDURE)

news/2024/10/21 5:53:37/

在实际开发过程中,业务需求修改的情况时有发生,所以修改 MySQL 中的存储过程是不可避免的。

MySQL 中通过 ALTER PROCEDURE 语句来修改存储过程。下面将详细讲解修改存储过程的方法。

MySQL 中修改存储过程的语法格式如下:

ALTER PROCEDURE 存储过程名 [ 特征 ... ]

特征指定了存储过程的特性,可能的取值有:

  • CONTAINS SQL 表示子程序包含 SQL 语句,但不包含读或写数据的语句。
  • NO SQL 表示子程序中不包含 SQL 语句。
  • READS SQL DATA 表示子程序中包含读数据的语句。
  • MODIFIES SQL DATA 表示子程序中包含写数据的语句。
  • SQL SECURITY { DEFINER |INVOKER } 指明谁有权限来执行。
  • DEFINER 表示只有定义者自己才能够执行。
  • INVOKER 表示调用者可以执行。
  • COMMENT 'string' 表示注释信息。

实例 1

下面修改存储过程 showstuscore 的定义,将读写权限改为 MODIFIES SQL DATA,并指明调用者可以执行,代码如下:

mysql> ALTER PROCEDURE showstuscore MODIFIES SQL DATA SQL SECURITY INVOKER;
Query OK, 0 rows affected (0.01 sec)

执行代码,并查看修改后的信息,运行结果如下:

mysql> SHOW CREATE PROCEDURE showstuscore \G
*************************** 1. row ***************************Procedure: showstuscoresql_mode: STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTIONCreate Procedure: CREATE DEFINER=`root`@`localhost` PROCEDURE `showstuscore`()MODIFIES SQL DATASQL SECURITY INVOKER
BEGIN
SELECT id,name,score FROM studentinfo;
END
character_set_client: gbk
collation_connection: gbk_chinese_ciDatabase Collation: latin1_swedish_ci
1 row in set (0.00 sec)

结果显示,存储过程修改成功。从运行结果可以看到,访问数据的权限已经变成了 MODIFIES SQL DATA,安全类型也变成了 INVOKE。

提示:ALTER PROCEDURE 语句用于修改存储过程的某些特征。如果要修改存储过程的内容,可以先删除原存储过程,再以相同的命名创建新的存储过程;如果要修改存储过程的名称,可以先删除原存储过程,再以不同的命名创建新的存储过程。

黑马程序员 MySQL数据库入门到精通,从mysql安装到mysql高级、mysql优化全囊括


http://www.ppmy.cn/news/66116.html

相关文章

InnoDB线程模型

新版本结构演变 MySQL 5.7 版本 将 Undo日志表空间从共享表空间 ibdata 文件中分离出来,可以在安装 MySQL 时由用户自行指定文件大小和数量增加了 temporary 临时表空间,里面存储着临时表或临时查询结果集的数据Buffer Pool 大小可以动态修改&#xff0…

【最新可用】chatGPT镜像网站国内使用,免费稳定!

新建了一个网站 https://ai.weoknow.com/ 每天给大家更新可用的国内可用chatGPT 2023.5.8新增一个 ChatGPT 国内免翻版 【网站名称】:Chat GPT Ai 【使用环境】:移动端/电脑网页端 ChatGPT是一款功能强大的免费在线聊天机器人,具有人工智能…

Java分布式事务(十八)

文章目录 🔥最终一致性分布式事务解决方案_什么是最大努力通知型分布式事务🔥最大努力通知型分布式事务_最大努力通知与可靠消息最终一致性的区别🔥最大努力通知型分布式事务解决方案🔥最大努力通知型分布式事务_案例业务说明🔥最大努力通知型分布式事务实战_实现充值…

docker学习笔记(二)

目录 启动Docker ​编辑 建立 Docker 用户 ​编辑 测试 Docker 是否正常工作 卸载Docker Docker镜像加速器配置 配置镜像 检查加速器是否生效 如何在Linux中的.json文件下保存并退出 如果我是使用vi操作进来的,我该如何保存并退出呢? 如何在Li…

RUST 每日一省:解引用Deref

“解引用”(Deref) 是“取引用”(Ref) 的反操作。 取引用, 我们有&、 &mut等操作符, 对应的, 解引用, 我们有*操作符。 默认的“取引用”、 “解引用”操作是互补抵消的关系…

ChatGPT被封?了解这些原因避免账号被封!

随着企业数字化转型的加速,传统的商业模式正在被颠覆,越来越多的企业开始使用人工智能技术来推动业务发展。ChatGPT作为一种自然语言处理技术,可以通过对话方式回答用户的问题或提供信息,在企业市场营销、客户服务、销售等方面发挥…

【设计模式】责任链模式的介绍及其应用

责任链的介绍 责任链模式是一种对象的行为模式。在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求&a…

XML入门知识(一)——XML语法简介

目录 1 XML简介2 XML文档结构3 XML基本语法3.1 声明3.2 元素一 定义二 命名规则三 元素属性 3.3 实体引用3.4 注释 1 XML简介 XML 指可扩展标记语言(eXtensible Markup Language)。 XML的特点是: XML 指可扩展标记语言(EXten…