Skip to content

Commit 99e6b90

Browse files
[merge]: restored some translations; fixed some errors
1 parent 67b44f2 commit 99e6b90

File tree

1 file changed

+20
-19
lines changed

1 file changed

+20
-19
lines changed

postgresql/doc/src/sgml/ref/merge.sgml

Lines changed: 20 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ ________________________________________________________-->
124124
<command>MERGE</command>执行修改目标表中被标识为<replaceable class="parameter">target_table_name</replaceable>的行的操作,
125125
使用<replaceable class="parameter">data_source</replaceable>。
126126
<command>MERGE</command>提供了一个单一的<acronym>SQL</acronym>语句,可以有条件地<command>INSERT</command>、
127-
<command>UPDATE</command>或<command>DELETE</command>行,这是一个否则需要多个过程语言语句的任务
127+
<command>UPDATE</command>或<command>DELETE</command>行,这是一项原本需要多个过程语言语句的任务
128128
</para>
129129
<!-- pgdoc-cn_end sig_en=4c8edecd4772b3b25dbf0e373dec9f38 -->
130130

@@ -161,7 +161,7 @@ ________________________________________________________-->
161161
</para>
162162
________________________________________________________-->
163163
<para>
164-
<command>合并</command> 操作与常规的 <command>更新</command>、<command>插入</command> 或 <command>删除</command> 命令具有相同的效果。
164+
<command>MERGE</command> 操作与常规的 <command>UPDATE</command>、<command>INSERT</command> 或 <command>DELETE</command> 命令具有相同的效果。
165165
这些命令的语法不同,特别是没有 <literal>WHERE</literal> 子句,也没有指定表名。
166166
所有操作都是针对目标表的,尽管可以使用触发器对其他表进行修改。
167167
</para>
@@ -226,7 +226,7 @@ ________________________________________________________-->
226226
________________________________________________________-->
227227
<para>
228228
<command>MERGE</command>不支持如果目标表是一个
229-
材料化视图、外部表,或者如果它有任何
229+
物化视图、外部表,或者如果它有任何
230230
在其上定义的规则。
231231
</para>
232232
<!-- pgdoc-cn_end sig_en=a44778cdeecf2599841306dcdd1ba3b5 -->
@@ -437,7 +437,7 @@ ________________________________________________________-->
437437
<para>
438438
如果<literal>WHEN</literal>子句指定为<literal>WHEN MATCHED</literal>,
439439
并且候选更改行匹配目标表中的一行,
440-
如果<replaceable class="parameter">条件</replaceable>不存在或评估为<literal>true</literal>,
440+
如果<replaceable class="parameter">condition</replaceable>不存在或评估为<literal>true</literal>,
441441
则执行<literal>WHEN</literal>子句。
442442
</para>
443443
<!-- pgdoc-cn_end sig_en=8d7c0b1e0c370d0b87286230f22eefb8 -->
@@ -455,7 +455,7 @@ ________________________________________________________-->
455455
<para>
456456
相反,如果<literal>WHEN</literal>子句指定<literal>WHEN NOT MATCHED</literal>,
457457
并且候选更改行与目标表中的行不匹配,
458-
则如果<replaceable class="parameter">条件</replaceable>不存在或评估为<literal>true</literal>,
458+
则如果<replaceable class="parameter">condition</replaceable>不存在或评估为<literal>true</literal>,
459459
则执行<literal>WHEN</literal>子句。
460460
</para>
461461
<!-- pgdoc-cn_end sig_en=7d75aea33ac186f4406512660cda007f -->
@@ -1057,13 +1057,14 @@ ________________________________________________________-->
10571057
对<literal>customer_accounts</literal>进行基于新<literal>recent_transactions</literal>的维护。
10581058

10591059
<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);
10671068
</programlisting>
10681069
</para>
10691070
<!-- pgdoc-cn_end sig_en=1e64e5c1a0c8648b896b8f4edfd60afd -->
@@ -1090,14 +1091,14 @@ ________________________________________________________-->
10901091
注意,这与以下语句完全等效,因为<literal>MATCHED</literal>结果在执行过程中不会改变。
10911092

10921093
<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
10951096
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);
11011102
</programlisting>
11021103
</para>
11031104
<!-- pgdoc-cn_end sig_en=a98e34cd6c7149059ddd38be0d38f8ed -->

0 commit comments

Comments
 (0)