Skip to content

Commit

Permalink
Merge pull request #2963 from noborus/ddl163
Browse files Browse the repository at this point in the history
ddl.sgmlの16.3対応です
  • Loading branch information
KenichiroTanaka authored Jul 17, 2024
2 parents 248bf35 + cd48a88 commit a8a2121
Showing 1 changed file with 8 additions and 23 deletions.
31 changes: 8 additions & 23 deletions doc/src/sgml/ddl.sgml
Original file line number Diff line number Diff line change
Expand Up @@ -1795,16 +1795,10 @@ CREATE TABLE posts (
declaration of a foreign key constraint does not automatically create an
index on the referencing columns.
-->
《マッチ度[77.038043]》外部キーは主キーであるかまたは一意性制約を構成する列を参照しなければなりません。
これは、被参照列は常に(主キーまたは一意性制約の基礎となる)インデックスを持つことを意味します。
このため、参照行に一致する行があるかどうかのチェックは効率的です。
外部キーは、主キー、または一意性制約を構成する列、または部分インデックスではない一意性インデックスを構成する列全体を参照しなければなりません。
これは、被参照列は常にインデックスがあり、参照する行に一致するかどうかを効率的に検索できることを意味します。
被参照テーブルからの行の<command>DELETE</command>や被参照行の<command>UPDATE</command>は、古い値と一致する行に対して参照テーブルのスキャンが必要となるので、参照行にもインデックスを付けるのは大抵は良い考えです。
これは常に必要という訳ではなく、また、インデックスの方法には多くの選択肢がありますので、外部キー制約の宣言では参照列のインデックスが自動的に作られるということはありません。
《機械翻訳》外部キーは、主キーまたは一意性制約を形成する列、または部分一意性インデックスの列を参照する必要があります。
これは、参照されるカラムには常にインデックスがあり、参照する行に一致があるかどうかを効率的に検索できることを意味します。
参照先テーブルから行を<command>DELETE</command>したり、参照先列を<command>UPDATE</command>したりすると、古い値に一致する行を参照するテーブルのスキャンが必要になるため、参照する列にもインデックスを付けることをお勧めします。
これは必ずしも必要ではないため、インデックスの作成方法には多くの選択肢があります。
外部キー制約の宣言は、参照する列に自動的にインデックスを作成するわけではありません。
</para>

<para>
Expand Down Expand Up @@ -3387,8 +3381,8 @@ PostgreSQLはあるタイプのオブジェクトが作成された時に、そ
displayed as a list of <type>aclitem</type> entries, each having the
format:
-->
《機械翻訳》特定のオブジェクトに対して付与された権限は、<type>aclitem</type>エントリのリストとして表示されます。
それぞれのエントリは次の形式です。
あるオブジェクトに与えられている権限は<type>aclitem</type>エントリのリストとして表示されます。
それぞれのエントリは次の形式です。
<synopsis>
<replaceable>grantee</replaceable><literal>=</literal><replaceable>privilege-abbreviation</replaceable><optional><literal>*</literal></optional>...<literal>/</literal><replaceable>grantor</replaceable>
</synopsis>
Expand All @@ -3409,17 +3403,11 @@ PostgreSQLはあるタイプのオブジェクトが作成された時に、そ
An empty grantee field in an <type>aclitem</type> stands
for <literal>PUBLIC</literal>.
-->
《マッチ度[59.702602]》あるオブジェクトに与えられている権限は<type>aclitem</type>エントリのリストとして表示されます
そこでは、<type>aclitem</type>はある権限付与者によって与えられている権限授与者の許可を示しています
<type>aclitem</type>は、特定の許可者によって付与された1人の許可者のすべての権限をリストします
特定の権限は<xref linkend="privilege-abbrevs-table"/>の1文字の短縮形で表され、権限が許可オプションで付与された場合は<literal>*</literal>が追加されます
たとえば、<literal>calvin=r*w/hobbes</literal>は、ロール<literal>calvin</literal>が許可オプション(<literal>*</literal>)ありの<literal>SELECT</literal>(<literal>r</literal>)と許可オプションなしの<literal>UPDATE</literal> (<literal>w</literal>)を持ち、それらがロール<literal>hobbes</literal>に与えられていることを示します。
別の権限付与者によって権限が与えられている同じオブジェクトに対して<literal>calvin</literal>も権限を持っている場合は、別の<type>aclitem</type>エントリとして表示されます。
<type>aclitem</type>の権限授与者フィールドが空であれば、それは<literal>PUBLIC</literal>を表します。
《機械翻訳》各<type>aclitem</type>は、特定の許可者によって付与された1人の許可者のすべての権限をリストします。
特定の権限は<xref linkend="privilege-abbrevs-table"/>の1文字の省略形で表され、権限が付与オプションで付与された場合は<literal>*</literal>が追加されます。
例えば、<literal>calvin=r*w/hobbes</literal>は、ロール<literal>calvin</literal>が、権限付与オプション(<literal>*</literal>)を持つ<literal>SELECT</literal>(<literal>r</literal>)と、権限付与不可の権限<literal>UPDATE</literal>(<literal>w</literal>)の両方を持つことを指定します。
どちらもロール<literal>hobbes</literal>によって付与されます。
<literal>calvin</literal>が同じオブジェクトに対して別の付与者によって付与された権限も持っている場合、それらは別の<type>aclitem</type>エントリとして表示されます。
<type>aclitem</type>内の空のgranteeフィールドは<literal>PUBLIC</literal>を表します。
</para>

<para>
Expand Down Expand Up @@ -6420,12 +6408,9 @@ ALTER INDEX measurement_city_id_logdate_key
themselves can be added and (if they are not present in the parent
table) dropped.
-->
《マッチ度[67.757009]》<literal>ONLY</literal>を使ってパーティションテーブルについてのみ制約を追加または削除することは、パーティションが存在しない場合はサポートされます
ひとたびパーティションが存在すれば、<literal>ONLY</literal>の使用はエラーになります
パーティションテーブルに対してのみ制約を追加または削除する場合、パーティションが存在しない限り、<literal>ONLY</literal>を使用することがサポートされています
ひとたびパーティションが存在すれば、<literal>ONLY</literal>を使用すると、<literal>UNIQUE</literal>および<literal>PRIMARY KEY</literal>以外の制約に対してエラーが発生します
その代わりに、パーティション自身の制約を追加することや(親テーブルに存在しない場合)削除することが可能です。
《機械翻訳》パーティション化されたテーブルに対してのみ制約を追加または削除する場合、パーティションが存在しない限り、<literal>ONLY</literal>を使用することがサポートされています。
パーティションが存在する場合、<literal>ONLY</literal>を使用すると、<literal>UNIQUE</literal>および<literal>PRIMARY KEY</literal>以外の制約に対してエラーが発生します。
その代わりに、パーティション自体に制約を追加し、(親テーブルに存在しない場合は)削除することができます。
</para>
</listitem>

Expand Down

0 comments on commit a8a2121

Please sign in to comment.