@@ -1845,7 +1845,7 @@ CREATE TABLE order_items (
1845
1845
</para>
1846
1846
____________________________________________________________________________-->
1847
1847
<para>
1848
- 为了说明这些,让我们在上面的多对多关系例子中实现下面的策略:当某人希望移除一个仍然被一个订单引用(通过<literal>order_items</literal>)的产品时 ,我们组织它 。如果某人移除一个订单,订单项也同时被移除:
1848
+ 为了说明这些,让我们在上面的多对多关系例子中实现下面的策略:当某人希望移除一个仍然被一个订单引用(通过<literal>order_items</literal>)的产品时 ,我们阻止它 。如果某人移除一个订单,订单项也同时被移除:
1849
1849
<programlisting>
1850
1850
CREATE TABLE products (
1851
1851
product_no integer PRIMARY KEY,
@@ -1892,7 +1892,7 @@ CREATE TABLE order_items (
1892
1892
</para>
1893
1893
____________________________________________________________________________-->
1894
1894
<para>
1895
- 限制删除或者级联删除是两种最常见的选项。<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>,但是默认值不满足外键约束,操作将会失败。
1895
+ 限制删除或者级联删除是两种最常见的选项。<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>,但是默认值不满足外键约束,操作将会失败。
1896
1896
</para>
1897
1897
1898
1898
<!--==========================orignal english content==========================
@@ -8100,7 +8100,7 @@ ____________________________________________________________________________-->
8100
8100
<itemizedlist>
8101
8101
<listitem>
8102
8102
<para>
8103
- 没有自动的方法啊验证所有的 <literal>CHECK</literal>约束之间是否互斥。编写代码来产生子表以及创建和修改相关对象比手写命令要更加安全。
8103
+ 没有自动的方法验证所有的 <literal>CHECK</literal>约束之间是否互斥。编写代码来产生子表以及创建和修改相关对象比手写命令要更加安全。
8104
8104
</para>
8105
8105
</listitem>
8106
8106
@@ -8551,7 +8551,7 @@ ____________________________________________________________________________-->
8551
8551
</para>
8552
8552
____________________________________________________________________________-->
8553
8553
<para>
8554
- 最重要的设计决策之一是列或者如和对数据进行分区的 。
8554
+ 最重要的设计决策之一是列或者如何对数据进行分区的 。
8555
8555
通常最佳选择是按列或列集合进行分区,这些列最常出现在分区表上执行的查询的 <literal>WHERE</literal>子句中。
8556
8556
<literal>WHERE</literal>子句与分区绑定约束兼容,可用于修剪不需要的分区。
8557
8557
但是,你可能会被迫根据<literal>PRIMARY KEY</literal>或<literal>UNIQUE</literal>约束的要求做出其他决策。
0 commit comments