Skip to content

Commit

Permalink
Merge pull request #3201 from k-zshiba/doc_ja_17_mvcc
Browse files Browse the repository at this point in the history
mvcc.sgmlのPostgreSQL 17.0対応です。
  • Loading branch information
KenichiroTanaka authored Jan 28, 2025
2 parents 2a5ee1f + 2c60982 commit b71d818
Showing 1 changed file with 3 additions and 10 deletions.
13 changes: 3 additions & 10 deletions doc/src/sgml/mvcc.sgml
Original file line number Diff line number Diff line change
Expand Up @@ -635,21 +635,14 @@ SQL標準では、ある分離レベルで発生しては<emphasis>ならない<
errors by restarting evaluation of <literal>MATCHED</literal>
conditions.
-->
《マッチ度[80.904523]》<command>MERGE</command>を使用すると、ユーザは<command>INSERT</command>、<command>UPDATE</command>および<command>DELETE</command>サブコマンドの様々な組み合わせを指定できます。
<command>MERGE</command>を使用すると、ユーザは<command>INSERT</command>、<command>UPDATE</command>および<command>DELETE</command>サブコマンドの様々な組み合わせを指定できます。
<command>INSERT</command>および<command>UPDATE</command>サブコマンドを指定した<command>MERGE</command>コマンドは、<literal>ON CONFLICT DO UPDATE</literal>句を指定した<command>INSERT</command>に似ていますが、<command>INSERT</command>または<command>UPDATE</command>のいずれかが発生することを保証するものではありません。
<command>MERGE</command>が<command>UPDATE</command>または<command>DELETE</command>を試行し、行が同時に更新されるものの、結合条件が現在のターゲットタプルと現在のソースタプルに適用される場合、<command>MERGE</command>は<command>UPDATE</command>または<command>DELETE</command>コマンドと同じように動作し、更新された行バージョンに対してアクションを実行します。
ただし、<command>MERGE</command>は複数のアクションを指定でき、それらは条件付きにすることができるため、各アクションの条件は更新されたバージョンの行に対して最初のアクションから再評価されます。
最初に一致したアクションがアクションリストの後の方に現れる場合でも同様です。
一方、行が同時に更新または削除されて結合条件が失敗した場合、<command>MERGE</command>は条件の<literal>NOT MATCHED</literal>アクションを次に評価し、成功した最初のアクションを実行します。
一方、行が同時に更新されて結合条件が失敗した場合、<command>MERGE</command>は次に<literal>NOT MATCHED BY SOURCE</literal>および<literal>NOT MATCHED [BY TARGET]</literal>アクションを評価し、それぞれの種類で最初に成功するアクションを実行します。
行が同時に削除された場合、<command>MERGE</command>は<literal>NOT MATCHED [BY TARGET]</literal>アクションを評価し、その中で最初に成功するアクションを実行します。
<command>MERGE</command>が<command>INSERT</command>を試行し、一意なインデックスが存在し、重複した行が同時に挿入された場合、一意性違反エラーが発生します。<command>MERGE</command>は<literal>MATCHED</literal>条件の評価を再開してこのようなエラーを回避しようとはしません。
《機械翻訳》<command>MERGE</command>を使用すると、ユーザは<command>INSERT</command>、<command>UPDATE</command>、<command>DELETE</command>サブコマンドのさまざまな組み合わせを指定できます。
<command>INSERT</command>と<command>MERGE</command>の両方のサブコマンドを持つ<command>UPDATE</command>コマンドは、<literal>ONコンフリクトDO更新</literal>句を持つ<command>INSERT</command>と似ていますが、<command>INSERT</command>または<command>UPDATE</command>のいずれかが実行されることを保証するものではありません。
<command>MERGE</command>が<command>UPDATE</command>または<command>DELETE</command>を試行し、行が同時に更新されても、結合条件が現在ターゲットと現在ソースタプルを通過する場合、<command>MERGE</command>は<command>UPDATE</command>または<command>DELETE</command>コマンドと同じように動作し、行の更新されたバージョンに対してアクションを実行します。
ただし、<command>MERGE</command>は複数のアクションを指定でき、条件付きにすることができるため、最初に一致したアクションが後で行のバージョンに表示された場合でも、各アクションの条件は、最初のアクションから開始して、更新されたアクションのリストで再評価されます。
一方、行が同時に更新されて結合条件が失敗した場合、<command>MERGE</command>は次にコマンドの<literal>NOT MATCHED BY SOURCE</literal>と <literal>NOT MATCHED [BY TARGET]</literal>アクションを評価し、実行は成功したそれぞれの種類の最初のものを評価する。
行が同時に削除された場合、<command>MERGE</command>はコマンドの <literal>NOT MATCHED [BY TARGET]</literal>アクションを評価し、実行が最初に成功した地域を評価します。
<command>MERGE</command>が<command>INSERT</command>を試行し、一意インデックスが存在し、重複行が同時に挿入される場合、一意性違反エラーが発生する。
<command>MERGE</command>は、<literal>MATCHED</literal>条件の評価を再開することによってそのようなエラーを回避しようとはしない。
</para>

<para>
Expand Down

0 comments on commit b71d818

Please sign in to comment.