MySQL 8.4 发行说明
DROP {PROCEDURE | FUNCTION} [IF EXISTS] sp_name这些语句用于删除存储例程(存储过程或函数)。也就是说,从服务器中删除指定的例程。(DROP FUNCTION 也用于删除可加载函数;请参阅 第 15.7.4.2 节,“用于可加载函数的 DROP FUNCTION 语句”。)
要删除存储例程,您必须对其具有 ALTER ROUTINE 权限。(如果启用了 automatic_sp_privileges 系统变量,则会在创建例程时自动向例程创建者授予该权限和 EXECUTE 权限,并在删除例程时从创建者处删除该权限。请参阅 第 27.2.2 节,“存储例程和 MySQL 权限”。)
此外,如果例程的定义者具有 SYSTEM_USER 权限,则删除它的用户也必须具有此权限。
IF EXISTS 子句是 MySQL 的扩展。如果过程或函数不存在,它可以防止发生错误。会生成一个警告,可以使用 SHOW WARNINGS 查看该警告。
DROP FUNCTION 也可用于删除可加载函数(请参阅 第 15.7.4.2 节“DROP FUNCTION 语句(用于可加载函数)”)。