Skip to content

Commit 2acf98c

Browse files
committed
by GitHub Actions [skip ci]
1 parent c9e62b0 commit 2acf98c

File tree

4 files changed

+15
-32
lines changed

4 files changed

+15
-32
lines changed

current/html/rules-views.html

Lines changed: 13 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -653,15 +653,10 @@
653653
or rewrite the query per a user-defined rule.
654654
These options are discussed below.
655655
</span>
656-
《マッチ度[89.233038]》ビューが<code class="command">INSERT</code><code class="command">UPDATE</code><code class="command">DELETE</code>などの目的リレーションとして名付けられた場合はどうなるのでしょうか
656+
ビューが<code class="command">INSERT</code><code class="command">UPDATE</code><code class="command">DELETE</code><code class="command">MERGE</code>などの対象リレーションとして名付けられた場合はどうなるのでしょうか
657657
上で説明したような置換をすると、結果リレーションが副問い合わせの範囲テーブル項目を指す問い合わせツリーができてしまい、それは上手く機能しません。しかし、いくつかのケースでは<span class="productname">PostgreSQL</span>はビューの更新をサポートする事ができます。
658658
ユーザエクスペリエンスの複雑さの順に、ビューから参照されているテーブルでの自動的な置換、ユーザ定義トリガの実行、ユーザ定義ルールごとの問い合わせの書き換えがあります。
659659
これらのオプションについては、以下で説明します。
660-
《機械翻訳》ビューが<code class="command">INSERT</code><code class="command">UPDATE</code><code class="command">DELETE</code><code class="command">MERGE</code>のターゲットリレーションとして記名的である場合はどうなりますか。
661-
上記の置換を行うと、結果の問い合わせツリーがサブクエリレンジ-テーブルエントリを指しているリレーションが得られますが、これは機能しません。
662-
ただし、いくつかの方法があります<span class="productname">PostgreSQL</span>サポートは更新の外観をビューにすることができます。
663-
ユーザのオーダーで経験された複雑さは、ビューの基礎となるテーブルで自動的に置き換えること、実行でユーザ定義のトリガを置き換えること、ユーザ定義のルールごとにクエリを書き直すことである。
664-
これらのオプションについては後述する。
665660
</p><p>
666661
<span class="original">
667662
If the subquery selects from a single base relation and is simple
@@ -674,11 +669,9 @@
674669
information on the kinds of view that can be automatically updated, see
675670
&lt;xref linkend="sql-createview"/&gt;.
676671
</span>
677-
《マッチ度[88.536155]》副問い合わせが単一の基底リレーションを参照しかつ十分に単純である時、リライタは副問い合わせを基となる基底リレーションに自動的に置き換え、したがって、<code class="command">INSERT</code><code class="command">UPDATE</code>あるいは<code class="command">DELETE</code>を適切な方法で基底リレーションに適用する事ができます。
678-
この場合の<span class="quote"><span class="quote">十分に単純</span></span>なビューは<em class="firstterm">自動的に更新可能</em>であると呼ばれます。自動的に更新可能なビューに関するより詳細な情報については、<a class="xref" href="sql-createview.html" title="CREATE VIEW"><span class="refentrytitle">CREATE VIEW</span></a>を参照してください。
679-
《機械翻訳》サブクエリが単一の基本リレーションから選択され、シンプルが十分である場合、リライタは自動的にサブクエリを基礎となる基本リレーションに置き換えて、<code class="command">INSERT</code><code class="command">UPDATE</code><code class="command">DELETE</code>、または<code class="command">MERGE</code>が適切な方法で基本リレーションに適用されるようにすることができます。
680-
そのための<span class="quote"><span class="quote">シンプルで十分な</span></span>景色を<em class="firstterm">自動的に更新可能</em>と呼びます。
681-
自動的に更新できるビューの種類の詳細については、<a class="xref" href="sql-createview.html" title="CREATE VIEW"><span class="refentrytitle">CREATE VIEW</span></a>を参照してください。
672+
副問い合わせが単一の基底リレーションを参照しかつ十分に単純である時、リライタは副問い合わせを基となる基底リレーションに自動的に置き換え、したがって、<code class="command">INSERT</code><code class="command">UPDATE</code><code class="command">DELETE</code>あるいは<code class="command">MERGE</code>を適切な方法で基底リレーションに適用できます。
673+
この場合の<span class="quote"><span class="quote">十分に単純</span></span>なビューは<em class="firstterm">自動的に更新可能</em>であると呼ばれます。
674+
自動的に更新可能なビューに関するより詳細な情報については、<a class="xref" href="sql-createview.html" title="CREATE VIEW"><span class="refentrytitle">CREATE VIEW</span></a>を参照してください。
682675
</p><p>
683676
<span class="original">
684677
Alternatively, the operation may be handled by a user-provided
@@ -694,16 +687,11 @@
694687
but another unexpanded range-table entry is added to the query
695688
to represent the view in its capacity as the result relation.
696689
</span>
697-
《マッチ度[87.603306]》もう一つの方法として、ビューに対するユーザ定義の<code class="literal">INSTEAD OF</code>トリガによってこれらのコマンドを処理する事ができます。この場合、書き換えは少々違う形で行われます
698-
<a class="xref" href="sql-createtrigger.html" title="CREATE TRIGGER"><span class="refentrytitle">CREATE TRIGGER</span></a>を参照してください)。
690+
もう一つの方法として、ビューに対するユーザ定義の<code class="literal">INSTEAD OF</code>トリガによってこれらのコマンドを処理できます(<a class="xref" href="sql-createtrigger.html" title="CREATE TRIGGER"><span class="refentrytitle">CREATE TRIGGER</span></a>を参照してください)。
691+
この場合、書き換えは少々違う形で行われます
699692
<code class="command">INSERT</code>に対しては、リライタはビューに全く何もせず、問い合わせの結果リレーションをそのままにします。
700-
<code class="command">UPDATE</code><code class="command">DELETE</code>に対しては、コマンドが更新もしくは削除しようとする<span class="quote"><span class="quote">古い</span></span>行を生成するためにビュー問い合わせを展開する必要がまだあります。
693+
<code class="command">UPDATE</code><code class="command">DELETE</code><code class="command">MERGE</code>に対しては、コマンドが更新、削除もしくはマージしようとする<span class="quote"><span class="quote">古い</span></span>行を生成するためにビュー問い合わせを展開する必要がまだあります。
701694
そのため、ビューは通常通り展開されますが、もう一つの展開されない範囲テーブル項目が結果リレーションとしてビューを表す問い合わせに追加されます。
702-
《機械翻訳》あるいは、オペレーションは、ビューのユーザ提供<code class="literal">代わり</code>トリガによって取り扱われてもよい(<a class="xref" href="sql-createtrigger.html" title="CREATE TRIGGER"><span class="refentrytitle">CREATE TRIGGER</span></a>を参照)。
703-
このケースでは、書き直しの動作が少し異なります。
704-
<code class="command">INSERT</code>の場合、リライタはビューに対して何も行わず、クエリの結果リレーションとして残します。
705-
<code class="command">UPDATE</code><code class="command">DELETE</code><code class="command">MERGE</code>については、コマンドが更新、削除、マージに対して試みる<span class="quote"><span class="quote">古い</span></span>行を生成するために、ビュークエリを拡張する必要があります。
706-
したがって、ビューは通常どおり拡張ですが、拡張されていない別のレンジ-テーブルエントリがクエリに追加され、結果としてリレーションとしての能力でビューを表します。
707695
</p><p>
708696
<span class="original">
709697
The problem that now arises is how to identify the rows to be
@@ -720,10 +708,10 @@
720708
&lt;literal&gt;INSTEAD OF&lt;/literal&gt; trigger. It is up to the trigger to work
721709
out what to update based on the old and new row values.
722710
</span>
723-
《マッチ度[90.697674]》ここで起こる問題はビューで更新される行をどのように特定するかということです。
711+
ここで起こる問題はビューで更新される行をどのように特定するかということです。
724712
結果リレーションがテーブルの場合、更新する行の物理的な位置を特定するために特別な<acronym class="acronym">CTID</acronym>項目が目的リストに追加されることを思い出して下さい。
725713
ビューの行には実際の物理的な位置がないため、ビューには<acronym class="acronym">CTID</acronym>がありませんので、これは結果リレーションがビューの場合には上手くいきません。
726-
その代わり、<code class="command">UPDATE</code><code class="command">DELETE</code>操作では、特別な<code class="literal">行全体</code>の項目が目的リストに追加されていて、それはビューからすべての列を含むように展開されています。
714+
その代わり、<code class="command">UPDATE</code><code class="command">DELETE</code><code class="command">MERGE</code>操作では、特別な<code class="literal">行全体</code>の項目が目的リストに追加されていて、それはビューからすべての列を含むように展開されています。
727715
エグゼキュータはこの値を使って<span class="quote"><span class="quote">古い</span></span>行を<code class="literal">INSTEAD OF</code>トリガに提供します。
728716
新旧の行の値に基づいて更新するものを計算するのはトリガの責任です。
729717
</p><p>
@@ -737,14 +725,10 @@
737725
&lt;command&gt;MERGE&lt;/command&gt;, which currently does not support rules on
738726
the target relation other than &lt;command&gt;SELECT&lt;/command&gt; rules.
739727
</span>
740-
《マッチ度[65.579710]》別の方法としては、ビューに対する<code class="command">INSERT</code><code class="command">UPDATE</code><code class="command">DELETE</code>コマンドに代替の動作を指定する<code class="literal">INSTEAD</code>ルールを定義する事です。
728+
別の方法としては、ビューに対する<code class="command">INSERT</code><code class="command">UPDATE</code><code class="command">DELETE</code>コマンドに代替の動作を指定する<code class="literal">INSTEAD</code>ルールを定義する事です。
741729
これらのルールは、ビューではなくコマンドを、通常は1つもしくは複数のテーブルを更新するコマンドに書き換えます。
742730
それが<a class="xref" href="rules-update.html" title="39.4. INSERT、UPDATE、DELETEについてのルール">39.4</a>の論題になります。
743-
《機械翻訳》もう1つの可能性は、ユーザで<code class="command">INSERT</code><code class="command">UPDATE</code><code class="command">DELETE</code>コマンドの代わりにアクションを指定する<code class="literal">INSTEAD</code>ルールをビューが定義することです。
744-
これらのルールは、コマンドを、通常はビューではなく1つ以上のテーブルを更新するコマンドに書き換えます。
745-
それは<a class="xref" href="rules-update.html" title="39.4. INSERT、UPDATE、DELETEについてのルール">39.4</a>のトピックです。
746-
ノートこれは<code class="command">MERGE</code>では機能しません。
747-
現在、<code class="command">SELECT</code>ルール以外のターゲットリレーションではサポートルールがありません。
731+
これは<code class="command">MERGE</code>では機能しないことに注意してください。現在、<code class="command">SELECT</code>ルール以外の対象リレーションでのルールをサポートしていません。
748732
</p><p>
749733
<span class="original">
750734
Note that rules are evaluated first, rewriting the original query
@@ -765,9 +749,8 @@
765749
triggers, they will override the default behavior of automatically
766750
updatable views.
767751
</span>
768-
《マッチ度[82.828283]》単純なビューに対する<code class="command">INSERT</code><code class="command">UPDATE</code>あるいは<code class="command">DELETE</code>コマンドの自動書き換えは常に最後に試みられます。したがって、ビューがルールもしくはトリガを持っていた場合、これらは更新可能ビューのデフォルト動作を上書きします。
769-
《機械翻訳》シンプルビューの<code class="command">INSERT</code><code class="command">UPDATE</code><code class="command">DELETE</code><code class="command">MERGE</code>クエリの自動書き換えは、常に最後に試行されます。
770-
したがって、ビューにルールまたはトリガーがある場合、自動的に更新可能ビューのデフォルト動作は上書きになります。
752+
単純なビューに対する<code class="command">INSERT</code><code class="command">UPDATE</code><code class="command">DELETE</code>あるいは<code class="command">MERGE</code>問い合わせの自動書き換えは常に最後に試みられます。
753+
したがって、ビューがルールもしくはトリガを持っていた場合、これらは自動的に更新可能なビューのデフォルト動作を上書きします。
771754
</p><p>
772755
<span class="original">
773756
If there are no &lt;literal&gt;INSTEAD&lt;/literal&gt; rules or &lt;literal&gt;INSTEAD OF&lt;/literal&gt;

current/postgres-A4.pdf

-2.82 KB
Binary file not shown.

index.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ layout: default
77

88
## 最新
99

10-
last-updated: 2025-03-11 04:29:19 JST
10+
last-updated: 2025-03-18 04:28:32 JST
1111

1212
### 最新 PostgreSQL
1313

@@ -25,7 +25,7 @@ last-updated: 2025-03-11 04:29:19 JST
2525

2626
| HTML (オンライン) | PDF | EPUB | man | 更新日 |
2727
|:---------------------------|:---------------------------------------------:|:--------------------------------------------:|:---:|:----------:|
28-
| [16.4](jpug-doc/16.4/html/) | [PDF](jpug-doc/16.3/postgresql-16.4-A4.pdf) | [EPUB](jpug-doc/16.4/postgresql-16.4.epub) | [man.tar.gz](jpug-doc/16.4/man.tar.gz) | <em id="update">2025-03-11</em> |
28+
| [16.4](jpug-doc/16.4/html/) | [PDF](jpug-doc/16.3/postgresql-16.4-A4.pdf) | [EPUB](jpug-doc/16.4/postgresql-16.4.epub) | [man.tar.gz](jpug-doc/16.4/man.tar.gz) | <em id="update">2025-03-18</em> |
2929
| [16.3](jpug-doc/16.3/html/) | [PDF](jpug-doc/16.3/postgresql-16.3-A4.pdf) | [EPUB](jpug-doc/16.3/postgresql-16.3.epub) | [man.tar.gz](jpug-doc/16.3/man.tar.gz) | 2024-08-15 |
3030
| [16.0](jpug-doc/16.0/html/) | [PDF](jpug-doc/16.0/postgresql-16.0-A4.pdf) | [EPUB](jpug-doc/16.0/postgresql-16.0.epub) | [man.tar.gz](jpug-doc/16.0/man.tar.gz) | 2024-05-15 |
3131

0 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)