2017-04-10 9 views
0

トリガーは、削除sqlステートメントを使用しているときに予約予約が削除されないようにするフライト予約データベースに対してこのトリガーを作成しました。私には2つのステータスがあります。 1つは予約された 'r'で、もう1つはキャンセルされた 'c'です。私の任務は、予約された予約を削除できないようにし、ユーザーが削除しようとすると、私の例のトリガーに示されている例外を発生させることです。削除防止トリガーが動作していない - postgresql

私はこのトリガーを作成し、正常に実行されましたが、ステータスが 'r'の予約予約を削除してテストすると、「クエリが正常に返されました:1行が影響を受けました...」というメッセージが表示されます欲しいです。例外を発生させ、予約を削除しないようにします。

​​
+0

あなたは 'BEFORE DELETE'トリガを必要とします。 –

+0

@ J.Doe: 'BEFORE'トリガーでは、' NULL'を返すとトリガー操作は中止され、 'NEW'は' NULL'です( 'DELETE'のための"新しい "レコードはありません)。代わりに 'RETURN OLD'を試してください。 –

答えて

1

このライン:

IF 'status' = 'r' THEN 

は...文字列'r'に文字列'status'を比較する(そしてもちろん、彼らは...同じになるつもりはありませんしています)。

次のようになり、文字列'r'フィールドstatusの比較:

IF OLD.status = 'r' THEN 
関連する問題