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