0

PostgreSQL 8.3 データベースには、「booking_transactions」テーブルを ID で参照する「bookings」テーブルがあります。各予約が単一のトランザクションに属するようにします。データベースから予約を削除することができます。

それを参照しているすべての「予約」がなくなったときに、「booking_transactions」行が自動的に削除されるようにするにはどうすればよいですか?

「予約」テーブルの他の行を照会する必要があるため、ON DELETE「予約」トリガーは機能しないと思われます。

4

2 に答える 2

0

「予約」のトリガーは機能するはずです。トリガー関数でテーブル自体をクエリするのに問題はありません。

于 2008-10-15T10:24:24.070 に答える
0

次のplpgsqlトリガー関数が仕事をします

BEGIN
DELETE FROM
    booking_transactions bt
WHERE
    bt.id = OLD.transaction_id AND
    NOT EXISTS (SELECT 1 FROM bookings b WHERE b.transaction_id = bt.id);

RETURN OLD;
END;

予約の削除後に実行する必要があります

于 2008-10-15T11:30:52.533 に答える