summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMagnus Hagander2021-03-06 16:36:48 +0000
committerMagnus Hagander2021-03-06 16:36:48 +0000
commite045565dae4b2368ba812d60ef0fb7f927fe2646 (patch)
tree75bd1c726f460128fe96e2eb48e4167de8ecd082
parentf1516ad7b3a9645a316846fa7b2229163bc55907 (diff)
Improve docs on updatable views
Introduce the options before going into details, and add a link to the CREATE TRIGGER documentation. Author: David Johnston Reviewed-By: Anastasia Lubennikova Discussion: https://postgr.es/m/CAKFQuwYLLRhheo0_Y4Jp=vJ_YDsz1KoRuTpX1A_bUxmHTmLe-A@mail.gmail.com
-rw-r--r--doc/src/sgml/rules.sgml7
1 files changed, 6 insertions, 1 deletions
diff --git a/doc/src/sgml/rules.sgml b/doc/src/sgml/rules.sgml
index aa172d102b..b017d3122e 100644
--- a/doc/src/sgml/rules.sgml
+++ b/doc/src/sgml/rules.sgml
@@ -797,6 +797,10 @@ SELECT t1.a, t2.b, t1.ctid FROM t1, t2 WHERE t1.a = t2.a;
relation points at a subquery range-table entry, which will not
work. There are several ways in which <productname>PostgreSQL</productname>
can support the appearance of updating a view, however.
+ In order of user-experienced complexity those are: automatically substitute
+ in the underlying table for the view, execute a user-defined trigger,
+ or rewrite the query per a user-defined rule.
+ These options are discussed below.
</para>
<para>
@@ -812,7 +816,8 @@ SELECT t1.a, t2.b, t1.ctid FROM t1, t2 WHERE t1.a = t2.a;
<para>
Alternatively, the operation may be handled by a user-provided
- <literal>INSTEAD OF</literal> trigger on the view.
+ <literal>INSTEAD OF</literal> trigger on the view
+ (see <xref linkend="sql-createtrigger"/>).
Rewriting works slightly differently
in this case. For <command>INSERT</command>, the rewriter does
nothing at all with the view, leaving it as the result relation