/
githubmirror
/
postgres
Обзор
Документация
Войти
/
githubmirror
/
postgres
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
doc/src/sgml/ref/drop_routine.sgml
123 строки
4 KB
Tom Lane
Reconsider the handling of procedure OUT parameters.
11 июн 2021, 00:11
11 июн 2021, 00:11
e56bce5
Код
Авторство
О чём код?
<!-- 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>