@@ -124,7 +124,7 @@ ________________________________________________________-->
124
124
<command>MERGE</command>执行修改目标表中被标识为<replaceable class="parameter">target_table_name</replaceable>的行的操作,
125
125
使用<replaceable class="parameter">data_source</replaceable>。
126
126
<command>MERGE</command>提供了一个单一的<acronym>SQL</acronym>语句,可以有条件地<command>INSERT</command>、
127
- <command>UPDATE</command>或<command>DELETE</command>行,这是一个否则需要多个过程语言语句的任务 。
127
+ <command>UPDATE</command>或<command>DELETE</command>行,这是一项原本需要多个过程语言语句的任务 。
128
128
</para>
129
129
<!-- pgdoc-cn_end sig_en=4c8edecd4772b3b25dbf0e373dec9f38 -->
130
130
@@ -161,7 +161,7 @@ ________________________________________________________-->
161
161
</para>
162
162
________________________________________________________-->
163
163
<para>
164
- <command>合并 </command> 操作与常规的 <command>更新 </command>、<command>插入 </command> 或 <command>删除 </command> 命令具有相同的效果。
164
+ <command>MERGE </command> 操作与常规的 <command>UPDATE </command>、<command>INSERT </command> 或 <command>DELETE </command> 命令具有相同的效果。
165
165
这些命令的语法不同,特别是没有 <literal>WHERE</literal> 子句,也没有指定表名。
166
166
所有操作都是针对目标表的,尽管可以使用触发器对其他表进行修改。
167
167
</para>
@@ -226,7 +226,7 @@ ________________________________________________________-->
226
226
________________________________________________________-->
227
227
<para>
228
228
<command>MERGE</command>不支持如果目标表是一个
229
- 材料化视图 、外部表,或者如果它有任何
229
+ 物化视图 、外部表,或者如果它有任何
230
230
在其上定义的规则。
231
231
</para>
232
232
<!-- pgdoc-cn_end sig_en=a44778cdeecf2599841306dcdd1ba3b5 -->
@@ -437,7 +437,7 @@ ________________________________________________________-->
437
437
<para>
438
438
如果<literal>WHEN</literal>子句指定为<literal>WHEN MATCHED</literal>,
439
439
并且候选更改行匹配目标表中的一行,
440
- 如果<replaceable class="parameter">条件 </replaceable>不存在或评估为<literal>true</literal>,
440
+ 如果<replaceable class="parameter">condition </replaceable>不存在或评估为<literal>true</literal>,
441
441
则执行<literal>WHEN</literal>子句。
442
442
</para>
443
443
<!-- pgdoc-cn_end sig_en=8d7c0b1e0c370d0b87286230f22eefb8 -->
@@ -455,7 +455,7 @@ ________________________________________________________-->
455
455
<para>
456
456
相反,如果<literal>WHEN</literal>子句指定<literal>WHEN NOT MATCHED</literal>,
457
457
并且候选更改行与目标表中的行不匹配,
458
- 则如果<replaceable class="parameter">条件 </replaceable>不存在或评估为<literal>true</literal>,
458
+ 则如果<replaceable class="parameter">condition </replaceable>不存在或评估为<literal>true</literal>,
459
459
则执行<literal>WHEN</literal>子句。
460
460
</para>
461
461
<!-- pgdoc-cn_end sig_en=7d75aea33ac186f4406512660cda007f -->
@@ -1057,13 +1057,14 @@ ________________________________________________________-->
1057
1057
对<literal>customer_accounts</literal>进行基于新<literal>recent_transactions</literal>的维护。
1058
1058
1059
1059
<programlisting>
1060
- 将customer_account表与recent_transactions表进行合并
1061
- 根据t.customer_id = ca.customer_id
1062
- 当匹配时
1063
- 更新SET balance = balance + transaction_value
1064
- 当不匹配时
1065
- 插入(customer_id, balance)
1066
- 值为(t.customer_id, t.transaction_value);
1060
+ MERGE INTO customer_account ca
1061
+ USING recent_transactions t
1062
+ ON t.customer_id = ca.customer_id
1063
+ WHEN MATCHED THEN
1064
+ UPDATE SET balance = balance + transaction_value
1065
+ WHEN NOT MATCHED THEN
1066
+ INSERT (customer_id, balance)
1067
+ VALUES (t.customer_id, t.transaction_value);
1067
1068
</programlisting>
1068
1069
</para>
1069
1070
<!-- pgdoc-cn_end sig_en=1e64e5c1a0c8648b896b8f4edfd60afd -->
@@ -1090,14 +1091,14 @@ ________________________________________________________-->
1090
1091
注意,这与以下语句完全等效,因为<literal>MATCHED</literal>结果在执行过程中不会改变。
1091
1092
1092
1093
<programlisting>
1093
- 将customer_account ca合并
1094
- 使用 (SELECT customer_id, transaction_value FROM recent_transactions) AS t
1094
+ MERGE INTO customer_account ca
1095
+ USING (SELECT customer_id, transaction_value FROM recent_transactions) AS t
1095
1096
ON t.customer_id = ca.customer_id
1096
- 当匹配时
1097
- 更新 SET balance = balance + transaction_value
1098
- 当不匹配时
1099
- 插入 (customer_id, balance)
1100
- 值 (t.customer_id, t.transaction_value);
1097
+ WHEN MATCHED THEN
1098
+ UPDATE SET balance = balance + transaction_value
1099
+ WHEN NOT MATCHED THEN
1100
+ INSERT (customer_id, balance)
1101
+ VALUES (t.customer_id, t.transaction_value);
1101
1102
</programlisting>
1102
1103
</para>
1103
1104
<!-- pgdoc-cn_end sig_en=a98e34cd6c7149059ddd38be0d38f8ed -->
0 commit comments