質問: select命令が来たらテーブルの全データを消去したい. 初めまして.よろしくお願いします. jdbcを使いjavaプログラムからselect命令が来たらテーブルの 全データをデリートするという動作をpl/pgsql言語を使ってトリガ関数 として書きたいのですが、上手い書き方が見つかりません. select命令をトリガとすると create rule name as on select to tablename do instead ~ となってしまい、do以下にdelete文が書けないのです. javaのexecutequery関数を用いて連続してselect文とdelete文を送る と、select文とdelete文の実行される間にこのテーブルは随時新たなデータ が挿入される可能性があるので、なんとかトリガ関数で書きたいのです. 良い方法があればご教授のほうお願いします.
回答: マニュアルを読みましょう。 selectの背景では、selectしか動作させられません。 現在のところ、on selectルールでは1つのアクションしか許されず、それはinsteadである無条件のselectアクションでなければいけません。この制約は、一般のユーザが何をしても、ルールシステムが堅牢であるために必要であり、on selectのルールはビュー同様の動作に限定されます。