Table Dialog¶
Table ダイアログを使用して、テーブルを作成または変更します。
テーブル ダイアログは、次のダイアログタブを使用してテーブルの開発を整理します。 一般 、 列 、 制約 、 詳細設定 、 パーティション 、 パラメーター 、および セキュリティ 。 SQL タブには、ダイアログ選択によって生成されたSQLコードが表示されます。
[ General ]タブのフィールドを使用して、テーブルを識別します。
Name フィールドを使用して、テーブルの説明的な名前を追加します。テーブルは、同じスキーマ内の既存のテーブル、シーケンス、インデックス、ビュー、外部テーブル、またはデータ型と同じ名前を持つことはできません。指定した名前は pgAdmin ツリーコントロールに表示されます。このフィールドは必須です。
所有者 フィールドのドロップダウンリストボックスからテーブルの所有者を選択します。デフォルトでは、テーブルの所有者は、テーブルを作成するロールです。
スキーマ フィールドのドロップダウンリストボックスから、テーブルが存在するスキーマの名前を選択します。
Tablespace フィールドのドロップダウンリストボックスを使用して、テーブルが保存されるテーブルスペースを指定します。
パーティションテーブルを作成する場合は、 PartitionedTable? スイッチを Yes に移動します。オプションはPostgreSQL10以降で利用できます。
コメント フィールドにテーブルに関するメモを保存します。
[ 列 ]タブをクリックして続行します。
テーブルから継承 の横にあるドロップダウンリストボックスを使用して、親テーブルを指定します。テーブルは、選択した親テーブルから列を継承します。 Inheritedfromtable(s) フィールド内をクリックして、ドロップダウンリストからテーブル名を選択します。を繰り返して、他の親テーブルを追加します。親名の左側にある x をクリックして、選択したテーブルを削除します。継承された列名とデータ型は、現在のダイアログでは編集できないことに注意してください。それらは親レベルで変更する必要があります。
Add アイコン(+)をクリックして、 Columns テーブルの列の名前とそのデータ型を指定します。
Name フィールドを使用して、列に説明的な名前を追加します。
Datatype フィールドのドロップダウンリストボックスを使用して、列のデータ型を選択します。これには、配列指定子を含めることができます。PostgreSQLでサポートされているデータ型の詳細については、コアドキュメントの第8章を参照してください。
有効な場合、 長さ/精度 および スケール フィールドを使用して、数値の最大有効桁数、またはテキスト値の最大文字数を指定します。
NotNULL? スイッチを Yes の位置に移動して、列フィールドの値を要求します。
主キー? スイッチを はい の位置に移動して、列が主キー制約であることを指定します。
Add アイコン(+)をクリックして、列を追加します。列を破棄するには、行の左側にあるゴミ箱アイコンをクリックし、 DeleteRow ポップアップで削除を確認します。
[ Constraints ]タブをクリックして続行します。
Constraints タブのフィールドを使用して、テーブルまたは列の制約を提供します。オプションの制約句は、新しいまたは更新された行が INSERT または UPDATE 操作を成功させるために満たす必要がある制約(テスト)を指定します。 Constraints パネルで次のタブのいずれかを選択して、適切なコンストレインタイプを選択します。
タブ名 |
制約 |
|---|---|
プライマリキー |
テーブルの各行に一意の識別子を提供します。 |
外部キー |
2つのテーブル間の参照整合性を維持します。 |
チェック |
挿入または変更の前に、データが式または条件を満たす必要があります。 |
ユニーク |
列または列のグループに含まれるデータが、テーブル内のすべての行で一意であることを保証します。 |
除外 |
(指定された演算子を使用して)指定された列または式で2つの行が比較される場合、少なくとも1つの演算子比較がfalseまたはnullを返すことを保証します。 |
テーブルの主キーを追加するには、 主キー タブを選択し、 追加 アイコン(+)をクリックします。プライマリキーを定義するには、 ゴミ箱 アイコンの左側にある 編集 アイコンをクリックします。 プライマリキー ダイアログ( pgAdmin ツリーコントロールの Constraints を右クリックしてアクセス)と同様のダイアログが開きます。
[ General ]タブのフィールドを使用して、主キーを識別します。
Name フィールドを使用して、主キー制約の説明的な名前を追加します。名前は pgAdmin ツリーコントロールに表示されます。
Comment フィールドに主キーに関するメモを入力します。
[ 定義 ]タブをクリックして続行します。
[ 定義 ]タブのフィールドを使用して、主キー制約を定義します。
Columns フィールド内をクリックし、ドロップダウンリストボックスから1つ以上の列名を選択します。選択を削除するには、列名の左側にある x をクリックします。主キー制約は、同じテーブルに対して定義された一意の制約とは異なる必要があります。制約に対して選択された列は個別である必要があります。
Tablespace フィールドのドロップダウンリストボックスから、主キー制約が存在するテーブルスペースの名前を選択します。
FillFactor フィールドを使用して、テーブルとインデックスのFILLFACTORを指定します。テーブルのフィルファクターは、10〜100のパーセンテージです。デフォルトは100(完全なパッキング)です。
Deferrable? スイッチを Yes の位置に移動して、制約が遅延可能であり、ステートメントの最後まで延期できるタイミングを指定します。デフォルトは いいえ です。
有効になっている場合、 Deferred? スイッチを Yes の位置に移動して、制約のタイミングをステートメントの最後に延期することを指定します。デフォルトは いいえ です。
外部キー制約を追加するには、 外部キー タブを選択し、 追加 アイコン(+)をクリックします。制約を定義するには、 ゴミ箱 アイコンの左側にある 編集 アイコンをクリックします。 外部キー ダイアログ( pgAdmin ツリーコントロールの Constraints を右クリックしてアクセス)と同様のダイアログが開きます。
[ General ]タブのフィールドを使用して、外部キー制約を識別します。
Name フィールドを使用して、外部キー制約の説明的な名前を追加します。名前は pgAdmin ツリーコントロールに表示されます。
Comment フィールドに外部キーに関するメモを入力します。
[ 定義 ]タブをクリックして続行します。
[ 定義 ]タブのフィールドを使用して、外部キー制約を定義します。
Deferrable? スイッチを Yes の位置に移動して、制約が遅延可能であり、ステートメントの最後まで延期できるタイミングを指定します。デフォルトは いいえ です。
有効になっている場合、 Deferred? スイッチを Yes の位置に移動して、制約のタイミングをステートメントの最後に延期することを指定します。デフォルトは いいえ です。
Matchtype スイッチを移動して、制約によって適用されるマッチングのタイプを指定します。
Full を選択して、いずれかの列がnullの場合、マルチカラム外部キーのすべての列をnullにする必要があることを示します。すべての列がnullの場合、行は参照先テーブルで一致する必要はありません。
Simple を選択して、単一の外部キー列をnullにできることを指定します。いずれかの列がnullの場合、行は参照先テーブルで一致する必要はありません。
Validated スイッチを Yes 位置に移動して、このダイアログへの変更を保存するときに既存のテーブルコンテンツを(外部キーまたはチェック制約に対して)検証するようにサーバーに指示します。
AutoFKIndex スイッチを No の位置に動かして、自動インデックス機能を無効にします。
CoveringIndex の横にあるフィールドは、 AutoFKIndex スイッチが Yes の位置にある場合、インデックスの名前を生成します。または、このフィールドは無効になっています。
[ 列 ]タブをクリックして続行します。
- Columns タブのフィールドを使用して、1つ以上の参照列を指定します。
外部キー制約では、テーブルの1つ以上の列に、参照されるテーブルの行の参照される列の値と一致する値のみが含まれている必要があります。
Localcolumn の横にあるドロップダウンリストボックスを使用して、外部テーブルと比較する現在のテーブルの列を指定します。
References の横にあるドロップダウンリストボックスを使用して、比較列が存在するテーブルの名前を指定します。
Referencing の横にあるドロップダウンリストボックスを使用して、外部テーブルの列を指定します。
Add アイコン(+)をクリックして、リストに列を追加します。上記の手順を繰り返し、 追加 アイコン(+)をクリックして列を追加します。エントリを破棄するには、エントリの左側にあるゴミ箱アイコンをクリックし、 DeleteRow ポップアップで削除を確認します。
[ アクション ]タブをクリックして続行します。
アクション タブのドロップダウンリストボックスを使用して、テーブル内のデータが更新または削除されるときに実行される外部キー制約に関連する動作を指定します。
Onupdate の横にあるドロップダウンリストボックスを使用して、テーブル内のデータが更新されたときに実行されるアクションを選択します。
Ondelete の横にあるドロップダウンリストボックスを使用して、テーブル内のデータが削除されたときに実行されるアクションを選択します。
サポートされているアクションは次のとおりです。
アクションなし |
削除または更新により外部キー制約違反が作成されることを示すエラーを生成します。制約が遅延されている場合、参照している行がまだ存在する場合、このエラーは制約チェック時に生成されます。これがデフォルトです。 |
制限 |
削除または更新により外部キー制約違反が作成されることを示すエラーをスローします。これはNOACTIONと同じですが、チェックが遅延可能ではありません。 |
カスケード |
削除された行を参照している行を削除するか、参照している列の値を参照されている列の新しい値にそれぞれ更新します。 |
NULLに設定 |
参照元の列をnullに設定します。 |
デフォルトに設定 |
参照する列をデフォルト値に設定します。参照されるテーブルには、デフォルト値(nullでない場合)と一致する行が存在する必要があります。そうでない場合、操作は失敗します。 |
チェック制約を追加するには、パネルの Check タブを選択し、 Add アイコン(+)をクリックします。チェック制約を定義するには、 ゴミ箱 アイコンの左側にある 編集 アイコンをクリックします。 Check ダイアログ( pgAdmin ツリーコントロールの Constraints を右クリックしてアクセス)と同様のダイアログが開きます。
General タブのフィールドを使用して、チェック制約を識別します。
Name フィールドを使用して、チェック制約の説明的な名前を追加します。名前は pgAdmin ツリーコントロールに表示されます。PostgreSQL9.5以降では、テーブルに複数のチェック制約がある場合、名前のアルファベット順でNOTNULL制約の後に行ごとにテストされます。
Comment フィールドにチェック制約に関するメモを入力します。
[ 定義 ]タブをクリックして続行します。
[ 定義 ]タブのフィールドを使用して、チェック制約を定義します。
Check フィールドに、行が満たさなければならない式を入力します。このフィールドは必須です。
NoInherit? スイッチを Yes の位置に移動して、この制約がテーブルの子に自動的に継承されないことを指定します。デフォルトは No で、制約がすべての子に継承されることを意味します。
Don'tvalidation? スイッチを No の位置に移動して、既存のデータの検証をスキップします。制約は、テーブル内のすべての行に適用されない場合があります。デフォルトは はい です。
ユニーク制約を追加するには、パネルの Unique タブを選択し、 Add アイコン(+)をクリックします。制約を定義するには、 ゴミ箱 アイコンの左側にある 編集 アイコンをクリックします。 Uniqueconstraint ダイアログ( pgAdmin ツリーコントロールの Constraints を右クリックしてアクセス)と同様のダイアログが開きます。
[ General ]タブのフィールドを使用して、一意の制約を識別します。
Name フィールドを使用して、一意性制約の説明的な名前を追加します。名前は pgAdmin ツリーコントロールに表示されます。
Comment フィールドに一意の制約に関するメモを入力します。
[ 定義 ]タブをクリックして続行します。
[ Definition ]タブのフィールドを使用して、一意の制約を定義します。
Columns フィールド内をクリックし、ドロップダウンリストボックスから1つ以上の列名を選択します。選択を削除するには、列名の左側にある x をクリックします。ユニーク制約は、同じテーブルに対して定義された主キー制約とは異なる必要があります。制約に対して選択された列は個別である必要があります。
Tablespace フィールドのドロップダウンリストボックスから、一意性制約が存在するテーブルスペースの名前を選択します。
FillFactor フィールドを使用して、テーブルとインデックスのFILLFACTORを指定します。テーブルのフィルファクターは、10〜100のパーセンテージです。デフォルトは100(完全なパッキング)です。
Deferrable? スイッチを Yes の位置に移動して、制約が遅延可能であり、ステートメントの最後まで延期できるタイミングを指定します。デフォルトは いいえ です。
有効になっている場合、 Deferred? スイッチを Yes の位置に移動して、制約のタイミングをステートメントの最後に延期することを指定します。デフォルトは いいえ です。
除外制約を追加するには、パネルの Exclude タブを選択し、 Add アイコン(+)をクリックします。制約を定義するには、 ゴミ箱 アイコンの左側にある 編集 アイコンをクリックします。 Exclusionconstraint ダイアログ( pgAdmin ツリーコントロールの Constraints を右クリックしてアクセス)と同様のダイアログが開きます。
[ General ]タブのフィールドを使用して、除外制約を特定します。
Name フィールドを使用して、除外制約に説明的な名前を付けます。名前は pgAdmin ツリーコントロールに表示されます。
Comment フィールドに除外制約に関するメモを入力します。
[ 定義 ]タブをクリックして続行します。
[ 定義 ]タブのフィールドを使用して、除外制約を定義します。
Tablespace の横にあるドロップダウンリストボックスを使用して、除外制約に関連付けられたインデックスが存在するテーブルスペースを選択します。
アクセス方法 の横にあるドロップダウンリストボックスを使用して、除外制約を実装するときに使用されるインデックスの種類を指定します。
gist を選択して、GiSTインデックスを指定します(デフォルト)。
spgist を選択して、スペースパーティション分割されたGiSTインデックスを指定します。
btree を選択して、Bツリーインデックスを指定します。
hash を選択して、ハッシュインデックスを指定します。
FillFactor フィールドを使用して、テーブルと関連するインデックスのFILLFACTORを指定します。フィルファクターは10〜100のパーセンテージです。デフォルトは100(完全なパッキング)です。
Deferrable? スイッチを Yes の位置に移動して、制約のタイミングが遅延可能であり、ステートメントの最後まで延期できることを指定します。デフォルトは いいえ です。
有効になっている場合、 Deferred? スイッチを Yes の位置に移動して、制約のタイミングをステートメントの最後に延期することを指定します。デフォルトは いいえ です。
Constraint フィールドを使用して、行をテーブルに含めるために満たす必要がある条件を提供します。
[ 列 ]タブをクリックして続行します。
Columns タブのフィールドを使用して、制約を適用する列を指定します。 Column の横にあるドロップダウンリストボックスを使用して列を選択し、 Add アイコン(+)をクリックして、列のアクションの詳細を提供します。
Column フィールドには、 Column ドロップダウンリストボックスでの選択が入力されます。
該当する場合、 演算子クラス のドロップダウンリストボックスを使用して、列のインデックスで使用される演算子クラスを指定します。
DESC スイッチを DESC に移動して、降順の並べ替え順序を指定します。デフォルトは ASC で、昇順のソート順を指定します。
NULLオーダー スイッチを LAST に移動して、NULLの昇順ソート順を定義します。デフォルトは FIRST で、降順を指定します。
Operator の横にあるドロップダウンリストを使用して、比較または条件演算子を指定します。
[ Advanced ]タブをクリックして続行します。
Advanced タブのフィールドを使用して、テーブルの高度な機能を定義します。
RLSPolicy? スイッチを Yes の位置に移動して、行レベルセキュリティを有効にします。
ForceRLSPolicy? を Yes の位置に移動して、テーブルの所有者にポリシーを強制します。
Oftype の横にあるドロップダウンリストボックスを使用して、指定した複合型からテーブル構造をコピーします。型が削除されると(DROPTYPE...CASCADEを使用して)、型付きテーブルが削除されることに注意してください。
FillFactor フィールドを使用して、テーブルのFILLFACTORを指定します。テーブルのフィルファクターは、10〜100のパーセンテージです。デフォルトは100(完全なパッキング)です。
トーストタプルターゲット フィールドを使用して、テーブルのtoast_tuple_targetストレージパラメーターを設定します。toast_tuple_target値はバイト単位で、最小値は128です。このフィールドは、PostgreSQLバージョン>=11でのみ有効になります
Parallelworker フィールドを使用して、テーブルのparallel_workersストレージパラメーターを設定します。parallel_workersは、テーブルの並列スキャンを支援するために使用されるワーカー数を設定します。このフィールドは、PostgreSQLバージョン>=9.6でのみ有効になります
OIDはありますか? スイッチを Yes の位置に移動して、テーブル内の各行にシステム割り当てのオブジェクト識別子があることを指定します。デフォルトは いいえ です。
Unlogged? スイッチを Yes の位置に移動して、テーブルのログを無効にします。ログに記録されないテーブルに書き込まれたデータは、ログ先行書き込みに書き込まれません。ログに記録されないテーブルで作成されたインデックスも、自動的にログに記録されません。デフォルトは いいえ です。
Like ボックスのフィールドを使用して、テーブルが列名、データ型、およびnot-null制約を自動的にコピーする既存のテーブルの属性を指定します。新しいテーブルまたは変更されたテーブルを保存した後、元のテーブルへの変更は新しいテーブルに適用されません。
Relation の横にあるドロップダウンリストボックスを使用して、参照テーブルを選択します。
デフォルト値を使用しますか? の横にあるスイッチを 右の位置 に移動して、デフォルト値をコピーします。
制約付き? の横にあるスイッチを 右の位置 に移動して、テーブルと列の制約をコピーします。
インデックス付き? の横にあるスイッチを 右の位置 に動かして、インデックスをコピーします。
ストレージあり? の横にあるスイッチを 右の位置 に動かして、ストレージ設定をコピーします。
コメント付き? の横にあるスイッチを 右の位置 に移動して、コメントをコピーします。
圧縮あり? の横にあるスイッチを 右の位置 に移動して、圧縮方法をコピーします。このオプションは、PostgreSQL14以降でのみ使用できます。
Withgenerated? の横にあるスイッチを 右の位置 に移動して、コピーされた列の世代式をコピーします。このオプションは、PostgreSQL12以降でのみ使用できます。
Withidentity? の横にあるスイッチを 右の位置 に移動して、コピーされた列のID仕様をコピーします。
統計あり? の横にあるスイッチを 右の位置 に動かして、拡張統計をコピーします。
PostgreSQL10以降では、 Partition タブが表示されます。
[ パーティション ]タブをクリックして続行します。
partition タブのフィールドを使用して、テーブルのパーティションを作成します。
PartitionType 選択ボックスからパーティションタイプを選択します。3つのオプションがあります。範囲、リスト、ハッシュ。ハッシュオプションは、PostgreSQLバージョン>=11でのみ有効になります。
PartitionKeys パネルを使用して、パーティションキーを定義します。 Add アイコン(+)をクリックして、各パーティションキーの選択を追加します。
Keytype フィールドでパーティションキーの種類を選択します。
Keytype フィールドで列オプションが選択されている場合、 Column フィールドでパーティション列を選択します。
Keytype フィールドでExpressionオプションが選択されている場合、 Expression フィールドに式を指定します。
Partitions パネルを使用して、テーブルのパーティションを定義します。 Add アイコン(+)をクリックして、各パーティションを追加します。
Operation スイッチを attach に移動して、パーティションをアタッチします。デフォルトでは create です。
Name フィールドを使用して、パーティションの名前を追加します。
パーティションタイプが範囲またはリストの場合、 デフォルト フィールドが有効になります。
パーティションタイプがRangeの場合、 From および To フィールドが有効になります。
パーティションタイプがリストの場合、 In フィールドが有効になります。
パーティションタイプがハッシュの場合、 Modulus および Remainder フィールドが有効になります。
ユーザーはパーティションを作成し、パーティションテーブルとして定義できます。 編集 アイコンをクリックして、パーティションのプロパティを展開します。 Partition タブを使用して、そのパーティションをパーティションテーブルとして作成します。
パーティションテーブルを作成する場合は、 PartitionedTable? スイッチを Yes に移動します。
PartitionType 選択ボックスからパーティションタイプを選択します。
PartitionKeys パネルを使用して、パーティションキーを定義します。
オブジェクトエクスプローラーでのマルチレベルパーティションテーブルのビュー:
[ パラメーター ]タブをクリックして続行します。
Parameter タブ内にネストされたタブを使用して、VACUUMおよびANALYZEのしきい値を指定します。 テーブル タブと トーストテーブル タブを使用して、テーブルと関連するトーストテーブルの値をカスタマイズします。
カスタム自動バキューム? スイッチを はい の位置に移動して、テーブルのカスタムメンテナンスを実行し、 バキュームテーブル の値を選択します。 バキュームテーブル は、メンテナンス操作のデフォルト値を提供します。
Autovacuumenabled? を Notset に変更すると、autovacuum_enabledがリセットされます。
Label 列にリストされている各メトリックの Value 列にカスタム値を入力します。
[ セキュリティ ]タブをクリックして続行します。
[ セキュリティ ]タブを使用して、特権を割り当て、セキュリティラベルを定義します。
Privileges パネルを使用して、ロールに特権を割り当てます。 Add アイコン(+)をクリックして、データベースオブジェクトの特権を設定します。
Grantee フィールドのドロップダウンリストボックスからロールの名前を選択します。
Privileges フィールド内をクリックします。1つ以上の権限の左側にあるチェックボックスをオンにして、選択した権限を指定されたユーザーに付与します。
特権を付与するためのデフォルトの付与者である現在のユーザーが、 Grantor フィールドに表示されます。
Add アイコン(+)をクリックして、追加の特権を割り当てます。特権を破棄するには、行の左側にあるゴミ箱アイコンをクリックし、 DeleteRow ポップアップで削除を確認します。
SecurityLabels パネルを使用して、関数に適用されるセキュリティラベルを定義します。 Add アイコン(+)をクリックして、各セキュリティラベルの選択を追加します。
Provider フィールドでセキュリティラベルプロバイダーを指定します。名前付きプロバイダーをロードし、提案されたラベル付け操作に同意する必要があります。
SecurityLabel フィールドにセキュリティラベルを指定します。特定のラベルの意味は、ラベルプロバイダーの裁量にあります。PostgreSQLは、ラベルプロバイダーがセキュリティラベルを解釈する必要があるかどうか、またはどのように解釈するかについて制限を設けていません。それらを格納するメカニズムを提供するだけです。
Add アイコン(+)をクリックして、追加のセキュリティラベルを割り当てます。セキュリティラベルを破棄するには、行の左側にあるゴミ箱アイコンをクリックし、 DeleteRow ポップアップで削除を確認します。
SQL タブをクリックして続行します。
Table ダイアログに入力すると、SQLコマンドが生成されます(以下の例を参照)。レビューには SQL タブを使用します。再アクセスするかタブを切り替えて、SQLコマンドを変更します。
例¶
以下は、 テーブル ダイアログでのユーザー選択によって生成されるsqlコマンドの例です。
示されている例は、 jobhist という名前のテーブルの作成を示しています。6つの列と、 empnoandstartdate 列に主キー制約があります。
Info ボタン(i)をクリックして、オンラインヘルプにアクセスします。
Save ボタンをクリックして作業を保存します。
Close ボタンをクリックして、作業を保存せずに終了します。
Reset ボタンをクリックして、構成パラメーターを復元します。