Table Dialog

目次

Table Dialog#

Table ダイアログを使用して、テーブルを作成または変更します。

Table ダイアログは、次のダイアログタブを介してテーブルの開発を編成します。 General 、 Columns 、 Constraints 、 Advanced 、 Parition 、 Parameter 、および Security 。 [ * SQL* ]タブには、ダイアログ選択によって生成されたSQLコードが表示されます。

テーブルダイアログの[一般]タブ

[ General ]タブのフィールドを使用して、テーブルを識別します。

  • Name フィールドを使用して、テーブルの説明的な名前を追加します。テーブルには、同じスキーマ内の既存のテーブル、シーケンス、インデックス、ビュー、外部テーブル、またはデータ型と同じ名前を持つことはできません。指定された名前は pgAdmin ツリーコントロールに表示されます。このフィールドは必須です。

  • Owner フィールドのドロップダウンリストボックスからテーブルの所有者を選択します。デフォルトでは、テーブルの所有者は、テーブルを作成するロールです。

  • Schema フィールドのドロップダウンリストボックスからテーブルが存在するスキーマの名前を選択します。

  • Tablespace フィールドのドロップダウンリストボックスを使用して、テーブルを保存するテーブルスペースを指定します。

  • パーティションテーブルを作成する場合は、 Partitioned Table? スイッチを Yes に移動します。オプションはPostgreSQL 10以降で利用できます。

  • テーブルに関するメモを コメント フィールドに保存します。

[ * Columns * ]タブをクリックして続行します。

テーブルダイアログの列タブ

Inherited from table(s) の横にあるドロップダウンリストボックスを使用して、親テーブルを指定します。テーブルは、選択した親テーブルから列を継承します。 Inherited from table(s) フィールド内をクリックして、ドロップダウンリストからテーブル名を選択します。繰り返して、他の親テーブルを追加します。親名の左側にある x をクリックして、選択したテーブルを削除します。継承された列名とデータ型は、現在のダイアログでは編集できないことに注意してください。親レベルで変更する必要があります。

Add アイコン+をクリックして、 Columns テーブルの列の名前とそのデータ型を指定します。

  • Name フィールドを使用して、列の説明的な名前を追加します。

  • Data type フィールドのドロップダウンリストボックスを使用して、列のデータ型を選択します。これには、配列指定子を含めることができます。 PostgreSQLでサポートされているデータ型の詳細については、コアドキュメントの第8章を参照してください。

  • 有効な場合、 長さ/精度 および スケール フィールドを使用して、数値の最大有効桁数、またはテキスト値の最大文字数を指定します。

  • 列フィールドの値を要求するには、 Not NULL? スイッチを Yes の位置に移動します。

  • Primary key? スイッチを Yes の位置に移動して、列が主キーコンストレインであることを指定します。

Add アイコン+をクリックして、列を追加します。列を破棄するには、行の左側にあるゴミ箱アイコンをクリックし、 Delete Row ポップアップで削除を確認します。

Constraints タブをクリックして続行します。

テーブルダイアログのコンストレインタブ

Constraints タブのフィールドを使用して、テーブルまたは列の制約を提供します。オプションの制約句は、 INSERT または UPDATE 操作が成功するために新しい行または更新された行が満たす必要がある制約テストを指定します。 [ コンストレイン ]パネルで次のタブのいずれかを選択して、適切なコンストレインタイプを選択します。

タブ名

コンストレイン

主キー

テーブル内の各行に一意の識別子を提供します。

外部キー

2つのテーブル間の参照整合性を維持します。

チェック

挿入または変更の前に、データが式または条件を満たす必要があります。

ユニーク

列または列のグループに含まれるデータが、テーブル内のすべての行で一意であることを確認します。

除外

指定された列または式で2つの行が指定された演算子を使用して比較された場合、少なくとも1つの演算子比較がfalseまたはnullを返すことを保証します。

テーブルの主キーを追加するには、[ 主キー ]タブを選択し、[ 追加 ]アイコン+をクリックします。主キーを定義するには、 Trash アイコンの左側にある Edit アイコンをクリックします。 Primary key ダイアログ pgAdmin ツリーコントロールの Constraints を右クリックしてアクセスに似たダイアログが開きます。

[ General ]タブのフィールドを使用して、主キーを特定します。

  • Name フィールドを使用して、主キーコンストレインの説明的な名前を追加します。名前は pgAdmin ツリーコントロールに表示されます。

  • Comment フィールドに、主キーに関するメモを入力します。

[ 定義 ]タブをクリックして続行します。

テーブルダイアログの主キー制約定義

Definition タブのフィールドを使用して、主キーコンストレインを定義します。

  • Columns フィールド内をクリックし、ドロップダウンリストボックスから1つ以上の列名を選択します。選択を削除するには、列名の左側にある x をクリックします。主キー制約は、同じテーブルに定義された一意制約とは異なる必要があります。制約のために選択された列は別のものである必要があります。

  • Tablespace フィールドのドロップダウンリストボックスから、主キー制約が存在するテーブルスペースの名前を選択します。

  • Fill Factor フィールドを使用して、テーブルとインデックスのFill Factorを指定します。テーブルのフィルファクターは、10〜100のパーセンテージです。100完全なパッキングがデフォルトです。

  • Deferrable? スイッチを Yes の位置に移動して、制約のタイミングが遅延可能で、ステートメントの最後まで延期できることを指定します。デフォルトは いいえ です。

  • 有効になっている場合、 Deferred? スイッチを Yes の位置に移動して、コンストレインのタイミングがステートメントの最後まで遅延されるように指定します。デフォルトは いいえ です。

テーブルダイアログ外部キーコンストレイン

外部キーコンストレインを追加するには、[ Foreign Key ]タブを選択し、[ Add ]アイコン+をクリックします。コンストレインを定義するには、 Trash アイコンの左側にある Edit アイコンをクリックします。 Foreign key ダイアログ pgAdmin ツリーコントロールの Constraints を右クリックしてアクセスに似たダイアログが開きます。

[ General ]タブのフィールドを使用して、外部キー制約を特定します。

  • Name フィールドを使用して、外部キーコンストレインの説明的な名前を追加します。名前は pgAdmin ツリーコントロールに表示されます。

  • 外部キーに関するメモを コメント フィールドに入力します。

[ 定義 ]タブをクリックして続行します。

テーブルダイアログ外部キー制約定義

Definition タブのフィールドを使用して、外部キーコンストレインを定義します。

  • Deferrable? スイッチを Yes の位置に移動して、制約のタイミングが遅延可能で、ステートメントの最後まで延期できることを指定します。デフォルトは いいえ です。

  • 有効になっている場合、 Deferred? スイッチを Yes の位置に移動して、コンストレインのタイミングがステートメントの最後まで遅延されるように指定します。デフォルトは いいえ です。

  • Match type スイッチを移動して、コンストレインによって強制されるマッチングのタイプを指定します。

    • Select Full to indicate that all columns of a multicolumn foreign key must be null if any column is null; if all columns are null, the row is not required to have a match in the referenced table.

    • Simple を選択して、単一の外部キー列がnullでもよいことを指定します。列がnullの場合、行は参照先テーブルで一致する必要はありません。

  • Validated スイッチを Yes の位置に移動して、このダイアログに変更を保存するときに既存のテーブルコンテンツを外部キーまたはチェック制約に対して検証するようにサーバーに指示します。

  • 自動インデックス機能を無効にするには、 Auto FK Index スイッチを No の位置に移動します。

  • Auto FK Index スイッチが Yes 位置にある場合、 Covering Index の横にあるフィールドはインデックスの名前を生成します。または、このフィールドは無効になっています。

[ * Columns * ]タブをクリックして続行します。

テーブルダイアログの外部キー制約列
Columns タブのフィールドを使用して、1つ以上の参照列を指定します。

外部キー制約では、テーブルの1つ以上の列に、参照先テーブルの行の参照列の値と一致する値のみを含めることが必要です。

  • ローカル列 の横にあるドロップダウンリストボックスを使用して、外部テーブルと比較する現在のテーブルの列を指定します。

  • References の横にあるドロップダウンリストボックスを使用して、比較列が存在するテーブルの名前を指定します。

  • Referencing の横にあるドロップダウンリストボックスを使用して、外部テーブルの列を指定します。

Add アイコン+をクリックして、リストに列を追加します。上記の手順を繰り返し、[ 追加 ]アイコン+をクリックして列を追加します。エントリを破棄するには、エントリの左側のゴミ箱アイコンをクリックし、 Delete Row ポップアップで削除を確認します。

[ * Action * ]タブをクリックして続行します。

テーブルダイアログの外部キーコンストレインアクション

[ アクション ]タブのドロップダウンリストボックスを使用して、テーブル内のデータが更新または削除されたときに実行される外部キー制約に関連する動作を指定します。

  • On update の横にあるドロップダウンリストボックスを使用して、テーブル内のデータが更新されたときに実行されるアクションを選択します。

  • On delete の横にあるドロップダウンリストボックスを使用して、テーブル内のデータが削除されたときに実行されるアクションを選択します。

サポートされているアクションは次のとおりです。

ノーアクション

削除または更新によって外部キー制約違反が作成されることを示すエラーを生成します。制約が据え置かれている場合、参照行がまだ存在している場合、このエラーは制約チェック時に生成されます。 これがデフォルトです。

制限

削除または更新により外部キー制約違反が作成されることを示すエラーをスローします。これは、チェックが遅延可能でないことを除き、 NO ACTIONと同じです。

カスケード

削除された行を参照する行を削除するか、参照列の値を参照列の新しい値にそれぞれ更新します。

SET NULL

参照列をnullに設定します。

デフォルトを設定

参照列をデフォルト値に設定します。 参照先テーブルに、デフォルト値がnullでない場合と一致する行が存在する必要があります。そうでない場合、操作は失敗します。

テーブルダイアログチェックコンストレイン

チェック制約を追加するには、パネルで[ Check ]タブを選択し、[ Add ]アイコン+をクリックします。チェック制約を定義するには、 Trash アイコンの左側にある Edit アイコンをクリックします。 Check ダイアログ pgAdmin ツリーコントロールの Constraints を右クリックしてアクセスに似たダイアログが開きます。

[ General ]タブのフィールドを使用して、チェック制約を特定します。

  • Name フィールドを使用して、チェック制約の説明的な名前を追加します。名前は pgAdmin ツリーコントロールに表示されます。 PostgreSQL 9.5以降では、テーブルに複数のチェック制約がある場合、名前のアルファベット順にNOT NULL制約の後、行ごとにテストされます。

  • Comment フィールドにチェック制約に関するメモを入力します。

[ 定義 ]タブをクリックして続行します。

テーブルダイアログチェック制約定義

Definition タブのフィールドを使用して、チェック制約を定義します。

  • 行が満たす必要がある式を Check フィールドに提供します。このフィールドは必須です。

  • No Inherit? スイッチを Yes の位置に移動して、この制約がテーブルの子に自動的に継承されないことを指定します。デフォルトは No で、コンストレインが子に継承されることを意味します。

  • 既存のデータの検証をスキップするには、 Don't validate? スイッチを No の位置に移動します。制約は、テーブル内のすべての行に適用されるわけではありません。デフォルトは Yes です。

テーブルダイアログの一意性コンストレイン

一意コンストレインを追加するには、パネルで[ Unique ]タブを選択し、[ Add ]アイコン+をクリックします。コンストレインを定義するには、 Trash アイコンの左側にある Edit アイコンをクリックします。 一意的制約 ダイアログ pgAdmin ツリーコントロールの コンストレイン を右クリックしてアクセスに似たダイアログが開きます。

[ General ]タブのフィールドを使用して、一意制約を特定します。

  • Name フィールドを使用して、一意制約の説明的な名前を追加します。名前は pgAdmin ツリーコントロールに表示されます。

  • Comment フィールドに、一意制約に関するメモを入力します。

[ 定義 ]タブをクリックして続行します。

テーブルダイアログの一意制約定義

Definition タブのフィールドを使用して、一意制約を定義します。

  • Columns フィールド内をクリックし、ドロップダウンリストボックスから1つ以上の列名を選択します。選択を削除するには、列名の左側にある x をクリックします。一意制約は、同じテーブルに定義された主キー制約とは異なる必要があります。制約のために選択された列は別のものである必要があります。

  • Tablespace フィールドのドロップダウンリストボックスから、一意制約が存在するテーブルスペースの名前を選択します。

  • Fill Factor フィールドを使用して、テーブルとインデックスのFill Factorを指定します。テーブルのフィルファクターは、10〜100のパーセンテージです。100完全なパッキングがデフォルトです。

  • Deferrable? スイッチを Yes の位置に移動して、制約のタイミングが遅延可能で、ステートメントの最後まで延期できることを指定します。デフォルトは いいえ です。

  • 有効になっている場合、 Deferred? スイッチを Yes の位置に移動して、コンストレインのタイミングがステートメントの最後まで遅延されるように指定します。デフォルトは いいえ です。

テーブルダイアログの除外コンストレイン

除外コンストレインを追加するには、パネルで Exclude タブを選択し、 Add アイコン+をクリックします。コンストレインを定義するには、 Trash アイコンの左側にある Edit アイコンをクリックします。 除外コンストレイン ダイアログ pgAdmin ツリーコントロールの コンストレイン を右クリックしてアクセスに似たダイアログが開きます。

[ General ]タブのフィールドを使用して、除外コンストレインを特定します。

  • Name フィールドを使用して、除外コンストレインの説明的な名前を指定します。名前は pgAdmin ツリーコントロールに表示されます。

  • Comment フィールドに、除外コンストレインに関するメモを入力します。

[ 定義 ]タブをクリックして続行します。

テーブルダイアログの除外制約定義

Definition タブのフィールドを使用して、除外コンストレインを定義します。

  • Tablespace の横にあるドロップダウンリストボックスを使用して、除外制約に関連付けられているインデックスが存在するテーブルスペースを選択します。

  • アクセス方法 の横にあるドロップダウンリストボックスを使用して、除外制約を実装するときに使用されるインデックスのタイプを指定します。

    • gist を選択して、GiSTインデックスデフォルトを指定します。

    • spgist を選択して、スペースパーティションされたGiSTインデックスを指定します。

    • btree を選択してBツリーインデックスを指定します。

    • hash を選択してハッシュインデックスを指定します。

  • Fill Factor フィールドを使用して、テーブルおよび関連するインデックスのFill Factorを指定します。フィルファクターは、10〜100のパーセンテージです。100完全なパッキングがデフォルトです。

  • Deferrable? スイッチを Yes の位置に移動して、制約のタイミングが遅延可能で、ステートメントの最後まで延期できることを指定します。デフォルトは いいえ です。

  • 有効になっている場合、 Deferred? スイッチを Yes の位置に移動して、コンストレインのタイミングがステートメントの最後まで遅延されるように指定します。デフォルトは いいえ です。

  • Constraint フィールドを使用して、テーブルに含まれるために行が満たす必要がある条件を提供します。

[ * Columns * ]タブをクリックして続行します。

テーブルダイアログの除外制約列

Columns タブのフィールドを使用して、制約を適用する列を指定します。 Column の横にあるドロップダウンリストボックスを使用して列を選択し、 Add アイコン+をクリックして列のアクションの詳細を提供します。

  • Column フィールドには、 Column ドロップダウンリストボックスで選択した内容が入力されます。

  • 必要に応じて、 演算子クラス のドロップダウンリストボックスを使用して、列のインデックスで使用される演算子クラスを指定します。

  • DESC スイッチを DESC に移動して、降順のソート順を指定します。デフォルトは ASC で、昇順のソート順を指定します。

  • NULLs order スイッチを LAST に移動して、NULLの昇順のソート順序を定義します。デフォルトは FIRST で、降順を指定します。

  • 演算子 の横にあるドロップダウンリストを使用して、比較演算子または条件演算子を指定します。

[ * Advanced * ]タブをクリックして続行します。

テーブルダイアログの詳細設定タブ

Advanced タブのフィールドを使用して、テーブルの高度な機能を定義します。

  • RLS Policy? スイッチを Yes の位置に移動して、行レベルセキュリティを有効にします。

  • Force RLS Policy? を Yes の位置に移動して、テーブルの所有者にポリシーを強制します。

  • Of type の横にあるドロップダウンリストボックスを使用して、指定された複合タイプからテーブル構造をコピーします。 DROP TYPE ... CASCADEで型がドロップされると、型付きテーブルもドロップされることに注意してください。

  • Access Methodの横にあるドロップダウンリストボックスを使用して、新しいテーブルのコンテンツを保存するために使用するテーブルアクセス方法を指定します。メソッドは、TABLEタイプのアクセス方法である必要があります。このフィールドはオプショナル。このオプションはv12以降で利用できます。

  • Fill Factor フィールドを使用して、テーブルのFill Factorを指定します。テーブルのフィルファクターは、10〜100のパーセンテージです。100完全なパッキングがデフォルトです。

  • Toastタプルターゲット フィールドを使用して、テーブルのtoast_tuple_targetストレージパラメーターを設定します。トースト_タプル_ターゲット値はバイト単位であり、最小値は128です。このフィールドは、PostgreSQLバージョン> = 11でのみ有効になります

  • Parallelworkers フィールドを使用して、テーブルのParallel_workersストレージパラメーターを設定します。 repair_workersは、テーブルの並列スキャンを支援するために使用するワーカーの数を設定します。このフィールドは、PostgreSQLバージョン> = 9.6でのみ有効になります

  • Has OIDs? スイッチを Yes の位置に移動して、テーブル内の各行にシステムが割り当てたオブジェクト識別子があることを指定します。デフォルトは いいえ です。

  • テーブルのロギングを無効にするには、 Unlogged? スイッチを Yes の位置に移動します。ログに記録されていないテーブルに書き込まれたデータは、 ログ先行書き込みに書き込まれません。ログに記録されていないテーブルで作成されたインデックスも、自動的にログに記録されません。デフォルトは いいえ です。

Like ボックスのフィールドを使用して、テーブルが列名、データ型、not-null制約を自動的にコピーする既存のテーブルの属性を指定します。 新しいまたは変更したテーブルを保存した後、元のテーブルへの変更は新しいテーブルに適用されません。

  • Relation の横にあるドロップダウンリストボックスを使用して、参照テーブルを選択します。

  • デフォルト値をコピーするには、 ウィズデフォルト値? の横にスイッチを 右の位置 に移動します。

  • テーブルと列の制約をコピーするには、 Withconstrains? の横にスイッチを 正しい位置 に移動します。

  • インデックスをコピーするには、 With Indexes? の横にスイッチを 右の位置 に移動します。

  • ストレージ設定をコピーするには、 With storage? の横にあるスイッチを 正しい位置 に移動します。

  • コメントをコピーするには、 With comments? の横にスイッチを 右の位置 に移動します。

  • 圧縮方法をコピーするには、 With Compression? の横にスイッチを 右の位置 に移動します。このオプションは、PostgreSQL 14以降でのみ使用できます。

  • コピーした列の生成式をコピーするには、 With individually? の横にスイッチを 右の位置 に移動します。このオプションは、PostgreSQL 12以降でのみ使用できます。

  • With attempts? の横にスイッチを 右の位置 に移動して、コピーした列のID仕様をコピーします。

  • 拡張統計をコピーするには、 With stable? の横にスイッチを 右の位置 に移動します。

PostgreSQL 10以降では、[ パーティション ]タブが表示されます。

Click the Partition tab to continue.

テーブルダイアログのパーティションタブ

partition タブのフィールドを使用して、テーブルのパーティションを作成します。

  • パーティションタイプ 選択ボックスからパーティションタイプを選択します。 3つのオプションがあります。レンジ、リスト、ハッシュ。ハッシュオプションは、PostgreSQLバージョン> = 11でのみ有効になります。

Use the Partition Keys panel to define the partition keys. Click the Add icon (+) to add each partition keys selection:

  • Keytype フィールドでパーティションキータイプを選択します。

  • Keytype フィールドで列オプションを選択した場合、 Column フィールドでパーティション列を選択します。

  • Keytype フィールドでExpressionオプションを選択した場合、 Expression フィールドで式を指定します。

Partitions パネルを使用して、テーブルのパーティションを定義します。 Add アイコン+をクリックして、各パーティションを追加します。

  • パーティションを接続するには、 Operation スイッチを attach に移動します。デフォルトでは create です。

  • Name フィールドを使用して、パーティションの名前を追加します。

  • パーティションタイプがレンジまたはリストの場合、 デフォルト フィールドが有効になります。

  • パーティションタイプがRangeの場合、 From および To フィールドが有効になります。

  • パーティションタイプがリストの場合、 In フィールドが有効になります。

  • パーティションタイプがハッシュの場合、 Modulus および Remainder フィールドが有効になります。

ユーザーはパーティションを作成し、パーティション化されたテーブルとして定義できます。 * Edit * アイコンをクリックして、パーティションのプロパティを展開します。 [ パーティション ]タブを使用して、そのパーティションをパーティションテーブルとして作成します。

  • パーティションテーブルを作成する場合は、 Partitioned Table? スイッチを Yes に移動します。

  • パーティションタイプ 選択ボックスからパーティションタイプを選択します。

  • Use the Partition Keys panel to define the partition keys.

オブジェクトエクスプローラーでのマルチレベルパーティションテーブルのビュー

テーブルダイアログパーティションツリー

[ パラメーター ]タブをクリックして続行します。

テーブルダイアログのパラメータータブ

Parameter タブの内にネストされたタブを使用して、VACUUMおよびANALYZEのしきい値を指定します。 Table タブと Toast Table タブを使用して、テーブルと関連するトーストテーブルの値をカスタマイズします。

  • Custom auto-vacuum? スイッチを Yes の位置に移動して、テーブルでカスタムメンテナンスを実行し、 Vacuumテーブル の値を選択します。 バキュームテーブル は、メンテナンス操作のデフォルト値を提供します。

  • Autovacuum enabled? を Not set に変更すると、autovacuum_enabledがリセットされます。

Label 列にリストされている各メトリックの Value 列にカスタム値を入力します。

[ セキュリティ ]タブをクリックして続行します。

テーブルダイアログのセキュリティタブ

[ セキュリティ ]タブを使用して、特権を割り当て、セキュリティラベルを定義します。

Privileges パネルを使用して、特権をロールに割り当てます。 Add アイコン+をクリックして、データベースオブジェクトの特権を設定します。

  • Grantee フィールドのドロップダウンリストボックスからロールの名前を選択します。

  • Privileges フィールド内をクリックします。 1つ以上の特権の左側のチェックボックスをオンにして、選択した特権を指定したユーザーに付与します。

  • 特権を付与するデフォルトの付与者である現在のユーザーが Grantor フィールドに表示されます。

Add アイコン+をクリックして、追加の特権を割り当てます。特権を破棄するには、行の左側にあるゴミ箱アイコンをクリックし、 Delete Row ポップアップで削除を確認します。

Security Labels パネルを使用して、ファンクションに適用されるセキュリティラベルを定義します。 Add アイコン+をクリックして、各セキュリティラベル選択を追加します。

  • Provider フィールドにセキュリティラベルプロバイダーを指定します。名前付けプロバイダーをロードし、提案されたラベル付け操作に同意する必要があります。

  • Security Label フィールドにセキュリティラベルを指定します。特定のラベルの意味は、ラベルプロバイダーの裁量にあります。 PostgreSQLは、ラベルプロバイダーがセキュリティラベルを解釈する必要があるかどうか、またはその方法に制限を設けません。それらを保存するためのメカニズムを提供するだけです。

Add アイコン+をクリックして、追加のセキュリティラベルを割り当てます。セキュリティラベルを破棄するには、行の左側にあるゴミ箱アイコンをクリックし、 Delete Row ポップアップで削除を確認します。

[ * SQL* ]タブをクリックして続行します。

Table ダイアログの入力は、 SQLコマンドを生成します。以下の例を参照してください。確認には * SQL* タブを使用します。再度アクセスするか、タブを切り替えて、 SQLコマンドを変更します。

例#

以下は、 テーブル ダイアログでのユーザー選択によって生成されたsqlコマンドの例です。

テーブルダイアログのSQLタブ

この例は、 jobhist という名前のテーブルを作成する方法を示しています。 6つの列と、 empnoおよびstartdate 列に主キー制約があります。

  • 情報 ボタンiをクリックして、オンラインヘルプにアクセスします。

  • Save ボタンをクリックして、作業を保存します。

  • Click the Close button to exit without saving work.

  • Reset ボタンをクリックして、構成パラメーターを復元します。