重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

初めまして.よろしくお願いします.

JDBCを使いJAVAプログラムからSelect命令が来たらテーブルの
全データをデリートするという動作をPL/pgSQL言語を使ってトリガ関数
として書きたいのですが、上手い書き方が見つかりません.
Select命令をトリガとすると

CREATE RULE name AS ON select
TO tableName DO INSTEAD ~

となってしまい、DO以下にDelete文が書けないのです.
JAVAのexecuteQuery関数を用いて連続してSelect文とDelete文を送る
と、Select文とDelete文の実行される間にこのテーブルは随時新たなデータ
が挿入される可能性があるので、なんとかトリガ関数で書きたいのです.
良い方法があればご教授のほうお願いします.

A 回答 (1件)

マニュアルを読みましょう。



SELECTの背景では、SELECTしか動作させられません。

現在のところ、ON SELECTルールでは1つのアクションしか許されず、それはINSTEADである無条件のSELECTアクションでなければいけません。この制約は、一般のユーザが何をしても、ルールシステムが堅牢であるために必要であり、ON SELECTのルールはビュー同様の動作に限定されます。

参考URL:http://www.postgresql.jp/document/pg821doc/html/ …
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す