Trigger Function Dialog

目次

Trigger Function Dialog#

トリガーファンクション ダイアログを使用して、trigger_functionを作成または管理します。トリガーファンクションは、トリガーが起動されたときに呼び出されるアクションを定義します。

トリガーファンクション ダイアログは、次のダイアログタブを介してトリガーファンクションの開発を編成します。 一般 、 定義 、 コード 、 オプション 、 パラメーター 、および セキュリティ 。 [ * SQL* ]タブには、ダイアログ選択によって生成されたSQLコードが表示されます。

トリガーファンクションダイアログの[一般]タブ

[ General ]タブのフィールドを使用して、トリガーファンクションを特定します。

  • Name フィールドを使用して、トリガーファンクションの説明的な名前を追加します。名前は pgAdmin ツリーコントロールに表示されます。トリガー機能はアルファベット順に呼び出されることに注意してください。

  • Owner の横にあるドロップダウンリストボックスを使用して、トリガー機能を所有するロールを選択します。

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

  • トリガー機能に関するメモを コメント フィールドに保存します。

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

トリガーファンクションダイアログ定義タブ

Definition タブのフィールドを使用して、トリガーファンクションを定義します。

  • Return type の横にあるドロップダウンリストボックスを使用して、トリガーファンクションに関連付けられる擬似タイプを指定します。

    • DMLトリガーを作成する場合は、 トリガー を選択します。

    • DDLトリガーを作成する場合は、 event_trigger を選択します。

  • 言語 の横にあるドロップダウンリストボックスを使用して、実装言語を選択します。デフォルトは plpgsql です。

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

トリガーファンクションダイアログのコードタブ
  • Code フィールドを使用して、トリガーファンクションが呼び出されたときに実行されるコードを書き込みます。

[ オプション ]タブをクリックして続行します。

トリガーファンクションダイアログのオプションタブ

Options タブのフィールドを使用して、トリガーファンクションのアクションを説明または変更します。

  • ボラティリティ の横にあるドロップダウンリストボックスを使用して、次のいずれかを選択します。

    • VOLATILE は、単一のテーブルスキャン内でもトリガーファンクション値が変更される可能性があることを示します。

    • STABLE は、トリガーファンクションがデータベースを変更できず、単一のテーブルスキャン内で、同じ引数値に対して一貫して同じ結果を返すことを示します。

    • IMMUTABLE は、トリガーファンクションがデータベースを変更できず、同じ引数値が指定された場合に常に同じ結果を返すことを示します。

  • Returns a Set? スイッチを移動して、トリガーファンクションが複数の行を含むセットを返すかどうかを示します。デフォルトは いいえ です。

  • Strict? スイッチを移動して、引数がNULLの場合は常に、トリガーファンクションが常にNULLを返すかどうかを示します。 Yes の場合、NULL引数がある場合、ファンクションは実行されません。代わりに、NULL結果が自動的に想定されます。デフォルトは いいえ です。

  • Security of promoter? スイッチを移動して、トリガーファンクションを作成したユーザーの特権で実行することを指定します。デフォルトは いいえ です。

  • Window? スイッチを移動して、トリガーファンクションがプレーンファンクションではなくウィンドウファンクションであることを示します。デフォルトは いいえ です。これは、現在Cで書かれたトリガーファンクションにのみ役立ちます。

  • 推定コスト フィールドを使用して、トリガーファンクションの推定実行コストを表す正の数をcpu_operator_costの単位で指定します。ファンクションがセットを返す場合、これは返された行ごとのコストです。

  • 推定行数 フィールドを使用して、クエリプランナーがトリガーファンクションが返すと予想される推定行数を与える正の数を指定します。これは、ファンクションがセットを返すように宣言されている場合にのみ許可されます。デフォルトの想定は1000行です。

  • Leak promote? スイッチを移動して、トリガーファンクションに副作用があるかどうかを示します。デフォルトは いいえ です。このオプションは、スーパーユーザーのみが設定できます。

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

トリガーファンクションダイアログのパラメータータブ

Parameters タブのフィールドを使用して、トリガーファンクションが呼び出されたときに適用される設定を指定します。 Add アイコン+をクリックして、 Name / Value ペアを下のテーブルに追加します。

  • Name フィールドのドロップダウンリストボックスを使用して、パラメーターを選択します。

  • Value フィールドを使用して、選択したパラメーターに関連付けられる値を指定します。このフィールドは状況依存です。

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

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

トリガーファンクションダイアログのセキュリティタブ

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

Privileges パネルを使用して、トリガー機能の使用特権をロールに割り当てます。 Add アイコン+をクリックして、テーブルにロールを追加します。

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

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

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

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

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

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

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

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

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

トリガーファンクション ダイアログの入力は、 SQLコマンドを生成します。以下の例を参照してください。確認には * SQL* タブを使用します。他のタブに再度アクセスして、 SQLコマンドを変更します。

例#

以下は、 トリガーファンクション ダイアログでのユーザー選択によって生成されたsqlコマンドの例です。

トリガーファンクションダイアログのSQLタブ

この例は、 emp_stamp という名前のトリガーファンクションを作成する方法を示しています。

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

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

  • Click the Close button to exit without saving work.

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