MySQL修改存储过程(ALTER PROCEDURE)/删除存储过程(DROP PROCEDURE) | 您所在的位置:网站首页 › mysql删除过程 › MySQL修改存储过程(ALTER PROCEDURE)/删除存储过程(DROP PROCEDURE) |
在实际开发过程中,业务需求修改的情况时有发生,所以修改 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: showstuscore sql_mode: STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION Create Procedure: CREATE DEFINER=`root`@`localhost` PROCEDURE `showstuscore`() MODIFIES SQL DATA SQL SECURITY INVOKER BEGIN SELECT id,name,score FROM studentinfo; END character_set_client: gbk collation_connection: gbk_chinese_ci Database Collation: latin1_swedish_ci 1 row in set (0.00 sec)结果显示,存储过程修改成功。从运行结果可以看到,访问数据的权限已经变成了 MODIFIES SQL DATA,安全类型也变成了 INVOKE。 提示:ALTER PROCEDURE 语句用于修改存储过程的某些特征。如果要修改存储过程的内容,可以先删除原存储过程,再以相同的命名创建新的存储过程;如果要修改存储过程的名称,可以先删除原存储过程,再以不同的命名创建新的存储过程。 下面讲讲删除存储过程 存储过程被创建后,就会一直保存在数据库服务器上,直至被删除。当 MySQL 数据库中存在废弃的存储过程时,我们需要将它从数据库中删除。 MySQL 中使用 DROP PROCEDURE 语句来删除数据库中已经存在的存储过程。语法格式如下: DROP PROCEDURE [ IF EXISTS ]语法说明如下: 过程名:指定要删除的存储过程的名称。 IF EXISTS:指定这个关键字,用于防止因删除不存在的存储过程而引发的错误。注意:存储过程名称后面没有参数列表,也没有括号,在删除之前,必须确认该存储过程没有任何依赖关系,否则会导致其他与之关联的存储过程无法运行。 实例 1下面删除存储过程 ShowStuScore,SQL 语句和运行结果如下: mysql> DROP PROCEDURE ShowStuScore; Query OK, 0 rows affected (0.08 sec)删除后,可以通过查询 information_schema 数据库下的 routines 表来确认上面的删除是否成功。SQL 语句和运行结果如下: mysql> SELECT * FROM information_schema.routines WHERE routine_name='ShowStuScore'; Empty set (0.03 sec)结果显示,没有查询出任何记录,说明存储过程 ShowStuScore 已经被删除了。 |
CopyRight 2018-2019 实验室设备网 版权所有 |