@@ -1801,7 +1801,7 @@ CREATE TABLE order_items (
1801
1801
</para>
1802
1802
____________________________________________________________________________-->
1803
1803
<para>
1804
- 为了说明这些,让我们在上面的多对多关系例子中实现下面的策略:当某人希望移除一个仍然被一个订单引用(通过<literal>order_items</literal>)的产品时 ,我们组织它 。如果某人移除一个订单,订单项也同时被移除:
1804
+ 为了说明这些,让我们在上面的多对多关系例子中实现下面的策略:当某人希望移除一个仍然被一个订单引用(通过<literal>order_items</literal>)的产品时 ,我们阻止它 。如果某人移除一个订单,订单项也同时被移除:
1805
1805
<programlisting>
1806
1806
CREATE TABLE products (
1807
1807
product_no integer PRIMARY KEY,
@@ -1848,7 +1848,7 @@ CREATE TABLE order_items (
1848
1848
</para>
1849
1849
____________________________________________________________________________-->
1850
1850
<para>
1851
- 限制删除或者级联删除是两种最常见的选项。<literal>RESTRICT</literal>阻止删除一个被引用的行。<literal>NO ACTION</literal>表示在约束被检察时如果有任何引用行存在 ,则会抛出一个错误,这是我们没有指定任何东西时的默认行为(这两种选择的本质不同在于<literal>NO ACTION</literal>允许检查被推迟到事务的最后,而<literal>RESTRICT</literal>则不会)。<literal>CASCADE</literal>指定当一个被引用行被删除后,引用它的行也应该被自动删除。还有其他两种选项:<literal>SET NULL</literal>和<literal>SET DEFAULT</literal>。这些将导致在被引用行被删除后,引用行中的引用列被置为空值或它们的默认值。注意这些并不会是我们免于遵守任何约束。例如,如果一个动作指定了<literal>SET DEFAULT</literal>,但是默认值不满足外键约束,操作将会失败。
1851
+ 限制删除或者级联删除是两种最常见的选项。<literal>RESTRICT</literal>阻止删除一个被引用的行。<literal>NO ACTION</literal>表示在约束被检查时如果有任何引用行存在 ,则会抛出一个错误,这是我们没有指定任何东西时的默认行为(这两种选择的本质不同在于<literal>NO ACTION</literal>允许检查被推迟到事务的最后,而<literal>RESTRICT</literal>则不会)。<literal>CASCADE</literal>指定当一个被引用行被删除后,引用它的行也应该被自动删除。还有其他两种选项:<literal>SET NULL</literal>和<literal>SET DEFAULT</literal>。这些将导致在被引用行被删除后,引用行中的引用列被置为空值或它们的默认值。注意这些并不会是我们免于遵守任何约束。例如,如果一个动作指定了<literal>SET DEFAULT</literal>,但是默认值不满足外键约束,操作将会失败。
1852
1852
</para>
1853
1853
1854
1854
<!--==========================orignal english content==========================
@@ -8012,7 +8012,7 @@ ____________________________________________________________________________-->
8012
8012
<itemizedlist>
8013
8013
<listitem>
8014
8014
<para>
8015
- 没有自动的方法啊验证所有的 <literal>CHECK</literal>约束之间是否互斥。编写代码来产生子表以及创建和修改相关对象比手写命令要更加安全。
8015
+ 没有自动的方法验证所有的 <literal>CHECK</literal>约束之间是否互斥。编写代码来产生子表以及创建和修改相关对象比手写命令要更加安全。
8016
8016
</para>
8017
8017
</listitem>
8018
8018
@@ -8479,7 +8479,7 @@ ____________________________________________________________________________-->
8479
8479
</para>
8480
8480
____________________________________________________________________________-->
8481
8481
<para>
8482
- 最重要的设计决策之一是列或者如和对数据进行分区的 。
8482
+ 最重要的设计决策之一是列或者如何对数据进行分区的 。
8483
8483
通常最佳选择是按列或列集合进行分区,这些列最常出现在分区表上执行的查询的 <literal>WHERE</literal>子句中。
8484
8484
<literal>WHERE</literal>子句项与分区键匹配并兼容,可用于裁剪不需要的分区。
8485
8485
但是,你可能会被迫根据<literal>PRIMARY KEY</literal>或<literal>UNIQUE</literal>约束的要求做出其他决策。
0 commit comments