DROP PROCEDURE

删除一个过程。

概述

DROP PROCEDURE [IF EXISTS] name ( [ [argmode] [argname] argtype [, ...] ] )
    [CASCADE | RESTRICT]

描述

DROP PROCEDURE 用于删除现有存储过程的定义。执行此命令时,用户必须是该存储过程的所有者。必须指定存储过程的参数类型,因为可能存在多个名称相同但参数列表不同的存储过程。

参数

  • IF EXISTS
    • 如果过程不存在,则不应抛出错误。此时将发出一个通知。
  • name
    • 现有存储过程的名称(可选带模式限定)。若未指定参数列表,该名称在其模式中必须唯一。
  • argmode
    • 参数模式:IN 或 VARIADIC。若省略,默认为 IN。
  • argname
    • 参数的名称。请注意,DROP PROCEDURE 语句实际上并不关注参数名称,因为仅需参数数据类型即可确定存储过程的唯一标识。
  • argtype
    • 过程参数的数据类型(可选带模式限定),如有。
  • CASCADE
    • 自动删除依赖于该过程的对象,以及所有依赖于这些对象的对象。
  • RESTRICT
    • 如果存在依赖该过程的对象,则拒绝终止该过程。此为默认行为。

示例

此命令将删除名为 do_db_maintenance 的过程:

DROP PROCEDURE do_db_maintenance();

兼容性

此命令符合SQL标准,包含以下数据库扩展功能:

标准仅允许每条命令删除一个存储过程。

IF EXISTS选项。

支持指定参数模式和名称。

另见

CREATE PROCEDURE, ALTER PROCEDURE