124 lines
3.9 KiB
Plaintext
124 lines
3.9 KiB
Plaintext
<!--
|
|
doc/src/sgml/ref/drop_routine.sgml
|
|
PostgreSQL documentation
|
|
-->
|
|
|
|
<refentry id="sql-droproutine">
|
|
<indexterm zone="sql-droproutine">
|
|
<primary>DROP ROUTINE</primary>
|
|
</indexterm>
|
|
|
|
<refmeta>
|
|
<refentrytitle>DROP ROUTINE</refentrytitle>
|
|
<manvolnum>7</manvolnum>
|
|
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
|
</refmeta>
|
|
|
|
<refnamediv>
|
|
<refname>DROP ROUTINE</refname>
|
|
<refpurpose>remove a routine</refpurpose>
|
|
</refnamediv>
|
|
|
|
<refsynopsisdiv>
|
|
<synopsis>
|
|
DROP ROUTINE [ IF EXISTS ] <replaceable class="parameter">name</replaceable> [ ( [ [ <replaceable class="parameter">argmode</replaceable> ] [ <replaceable class="parameter">argname</replaceable> ] <replaceable class="parameter">argtype</replaceable> [, ...] ] ) ] [, ...]
|
|
[ CASCADE | RESTRICT ]
|
|
</synopsis>
|
|
</refsynopsisdiv>
|
|
|
|
<refsect1>
|
|
<title>Description</title>
|
|
|
|
<para>
|
|
<command>DROP ROUTINE</command> removes the definition of one or more
|
|
existing routines. The term <quote>routine</quote> includes
|
|
aggregate functions, normal functions, and procedures. See
|
|
under <xref linkend="sql-dropaggregate"/>, <xref linkend="sql-dropfunction"/>,
|
|
and <xref linkend="sql-dropprocedure"/> for the description of the
|
|
parameters, more examples, and further details.
|
|
</para>
|
|
</refsect1>
|
|
|
|
<refsect1 id="sql-droproutine-notes">
|
|
<title>Notes</title>
|
|
|
|
<para>
|
|
The lookup rules used by <command>DROP ROUTINE</command> are
|
|
fundamentally the same as for <command>DROP PROCEDURE</command>; in
|
|
particular, <command>DROP ROUTINE</command> shares that command's
|
|
behavior of considering an argument list that has
|
|
no <replaceable class="parameter">argmode</replaceable> markers to be
|
|
possibly using the SQL standard's definition that <literal>OUT</literal>
|
|
arguments are included in the list. (<command>DROP AGGREGATE</command>
|
|
and <command>DROP FUNCTION</command> do not do that.)
|
|
</para>
|
|
|
|
<para>
|
|
In some cases where the same name is shared by routines of different
|
|
kinds, it is possible for <command>DROP ROUTINE</command> to fail with
|
|
an ambiguity error when a more specific command (<command>DROP
|
|
FUNCTION</command>, etc.) would work. Specifying the argument type
|
|
list more carefully will also resolve such problems.
|
|
</para>
|
|
|
|
<para>
|
|
These lookup rules are also used by other commands that
|
|
act on existing routines, such as <command>ALTER ROUTINE</command>
|
|
and <command>COMMENT ON ROUTINE</command>.
|
|
</para>
|
|
</refsect1>
|
|
|
|
<refsect1 id="sql-droproutine-examples">
|
|
<title>Examples</title>
|
|
|
|
<para>
|
|
To drop the routine <literal>foo</literal> for type
|
|
<type>integer</type>:
|
|
<programlisting>
|
|
DROP ROUTINE foo(integer);
|
|
</programlisting>
|
|
This command will work independent of whether <literal>foo</literal> is an
|
|
aggregate, function, or procedure.
|
|
</para>
|
|
</refsect1>
|
|
|
|
<refsect1 id="sql-droproutine-compatibility">
|
|
<title>Compatibility</title>
|
|
|
|
<para>
|
|
This command conforms to the SQL standard, with
|
|
these <productname>PostgreSQL</productname> extensions:
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>The standard only allows one routine to be dropped per command.</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>The <literal>IF EXISTS</literal> option is an extension.</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>The ability to specify argument modes and names is an
|
|
extension, and the lookup rules differ when modes are given.</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>User-definable aggregate functions are an extension.</para>
|
|
</listitem>
|
|
</itemizedlist></para>
|
|
</refsect1>
|
|
|
|
<refsect1>
|
|
<title>See Also</title>
|
|
|
|
<simplelist type="inline">
|
|
<member><xref linkend="sql-dropaggregate"/></member>
|
|
<member><xref linkend="sql-dropfunction"/></member>
|
|
<member><xref linkend="sql-dropprocedure"/></member>
|
|
<member><xref linkend="sql-alterroutine"/></member>
|
|
</simplelist>
|
|
|
|
<para>
|
|
Note that there is no <literal>CREATE ROUTINE</literal> command.
|
|
</para>
|
|
</refsect1>
|
|
|
|
</refentry>
|