summaryrefslogtreecommitdiffstats
path: root/doc/src/sgml/ref/alter_trigger.sgml
blob: ece9cb5acfd1d90306c887eda421b16b5334e241 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
<!--
doc/src/sgml/ref/alter_trigger.sgml
PostgreSQL documentation
-->

<refentry id="sql-altertrigger">
 <indexterm zone="sql-altertrigger">
  <primary>ALTER TRIGGER</primary>
 </indexterm>

 <refmeta>
  <refentrytitle>ALTER TRIGGER</refentrytitle>
  <manvolnum>7</manvolnum>
  <refmiscinfo>SQL - Language Statements</refmiscinfo>
 </refmeta>

 <refnamediv>
  <refname>ALTER TRIGGER</refname>
  <refpurpose>change the definition of a trigger</refpurpose>
 </refnamediv>

 <refsynopsisdiv>
<synopsis>
ALTER TRIGGER <replaceable class="parameter">name</replaceable> ON <replaceable class="parameter">table_name</replaceable> RENAME TO <replaceable class="parameter">new_name</replaceable>
ALTER TRIGGER <replaceable class="parameter">name</replaceable> ON <replaceable class="parameter">table_name</replaceable> [ NO ] DEPENDS ON EXTENSION <replaceable class="parameter">extension_name</replaceable>
</synopsis>
 </refsynopsisdiv>

 <refsect1>
  <title>Description</title>

  <para>
   <command>ALTER TRIGGER</command> changes properties of an existing
   trigger.
  </para>

  <para>
   The <literal>RENAME</literal> clause changes the name of
   the given trigger without otherwise changing the trigger
   definition.
   If the table that the trigger is on is a partitioned table,
   then corresponding clone triggers in the partitions are
   renamed too.
  </para>

  <para>
   The <literal>DEPENDS ON EXTENSION</literal> clause marks
   the trigger as dependent on an extension, such that if the extension is
   dropped, the trigger will automatically be dropped as well.
  </para>

  <para>
   You must own the table on which the trigger acts to be allowed to change its properties.
  </para>
 </refsect1>

 <refsect1>
  <title>Parameters</title>

  <variablelist>
   <varlistentry>
    <term><replaceable class="parameter">name</replaceable></term>
    <listitem>
     <para>
      The name of an existing trigger to alter.
     </para>
    </listitem>
   </varlistentry>

   <varlistentry>
    <term><replaceable class="parameter">table_name</replaceable></term>
    <listitem>
     <para>
      The name of the table on which this trigger acts.
     </para>
    </listitem>
   </varlistentry>

   <varlistentry>
    <term><replaceable class="parameter">new_name</replaceable></term>
    <listitem>
     <para>
      The new name for the trigger.
     </para>
    </listitem>
   </varlistentry>

   <varlistentry>
    <term><replaceable class="parameter">extension_name</replaceable></term>
    <listitem>
     <para>
      The name of the extension that the trigger is to depend on (or no longer
      dependent on, if <literal>NO</literal> is specified).  A trigger
      that's marked as dependent on an extension is automatically dropped when
      the extension is dropped.
     </para>
    </listitem>
   </varlistentry>
  </variablelist>
 </refsect1>

 <refsect1>
  <title>Notes</title>

   <para>
    The ability to temporarily enable or disable a trigger is provided by
    <link linkend="sql-altertable"><command>ALTER TABLE</command></link>, not by
    <command>ALTER TRIGGER</command>, because <command>ALTER TRIGGER</command> has no
    convenient way to express the option of enabling or disabling all of
    a table's triggers at once.
   </para>
 </refsect1>

 <refsect1>
  <title>Examples</title>

  <para>
   To rename an existing trigger:
<programlisting>
ALTER TRIGGER emp_stamp ON emp RENAME TO emp_track_chgs;
</programlisting></para>

  <para>
   To mark a trigger as being dependent on an extension:
<programlisting>
ALTER TRIGGER emp_stamp ON emp DEPENDS ON EXTENSION emplib;
</programlisting></para>
 </refsect1>

 <refsect1>
  <title>Compatibility</title>

  <para>
   <command>ALTER TRIGGER</command> is a <productname>PostgreSQL</productname>
   extension of the SQL standard.
  </para>
 </refsect1>

 <refsect1>
  <title>See Also</title>

  <simplelist type="inline">
   <member><xref linkend="sql-altertable"/></member>
  </simplelist>
 </refsect1>
</refentry>