こんにちは、新しく挿入されたデータ (アドレス、リスト番号、日付、価格) に同様のタプルがある場合に挿入/更新を許可しないトリガーに取り組んでいます。
条件 - 1 つのリストを同じ日に 2 回リストすることはできません テーブル 123、1992 年 6 月 19 日 123、1990 年 6 月 20 日 挿入: 123、1990 年 6 月 20 日 - テーブルで既に機能しない
私のコードの唯一の問題は、リストテーブルに最初からデータがない場合に動作しないことです
create or replace TRIGGER same_prop_listed BEFORE INSERT OR UPDATE ON HasListing
FOR each ROW
DECLARE
c_date VARCHAR2(20);
BEGIN
SELECT LISTING_DATE
INTO c_date
FROM HasListing
WHERE PROP_ADDRESS = :NEW.prop_address;
IF (c_date = :NEW.listing_date) THEN
RAISE_APPLICATION_ERROR(-20001,'Cannot list same property twice in one day!');
END IF;
EXCEPTION
WHEN NO_DATA_FOUND THEN
RAISE_APPLICATION_ERROR(-20003,'No DATA');
END;
これはオラクルにあります。だから私のエラーはオンです - IF (c_date = :NEW.listing_date) c_dateがnullだからです