- 締切済み
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文の実行される間にこのテーブルは随時新たなデータ が挿入される可能性があるので、なんとかトリガ関数で書きたいのです. 良い方法があればご教授のほうお願いします.
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- chukenkenkou
- ベストアンサー率43% (833/1926)
回答No.1
マニュアルを読みましょう。 SELECTの背景では、SELECTしか動作させられません。 現在のところ、ON SELECTルールでは1つのアクションしか許されず、それはINSTEADである無条件のSELECTアクションでなければいけません。この制約は、一般のユーザが何をしても、ルールシステムが堅牢であるために必要であり、ON SELECTのルールはビュー同様の動作に限定されます。