15.1.29 DROP PROCEDURE and DROP FUNCTION Statements (original) (raw)

15.1.29 DROP PROCEDURE and DROP FUNCTION Statements

DROP {PROCEDURE | FUNCTION} [IF EXISTS] sp_name

These statements are used to drop a stored routine (a stored procedure or function). That is, the specified routine is removed from the server. (DROP FUNCTION is also used to drop loadable functions; seeSection 15.7.4.2, “DROP FUNCTION Statement for Loadable Functions”.)

To drop a stored routine, you must have theALTER ROUTINE privilege for it. (If the automatic_sp_privileges system variable is enabled, that privilege andEXECUTE are granted automatically to the routine creator when the routine is created and dropped from the creator when the routine is dropped. SeeSection 27.2.2, “Stored Routines and MySQL Privileges”.)

In addition, if the definer of the routine has theSYSTEM_USER privilege, the user dropping it must also have this privilege. This is enforced in MySQL 8.0.16 and later.

The IF EXISTS clause is a MySQL extension. It prevents an error from occurring if the procedure or function does not exist. A warning is produced that can be viewed withSHOW WARNINGS.

DROP FUNCTION is also used to drop loadable functions (see Section 15.7.4.2, “DROP FUNCTION Statement for Loadable Functions”).