私は Oracle のトリガーを初めて使用します。次の構文で EVENT テーブルを作成しました。
CREATE TABLE Event
(event_id NUMBER (3) NOT NULL,
event_date DATE NOT NULL,
venue_id NUMBER (2) NOT NULL,
concert_id NUMBER (3) NOT NULL
);
8 月中にコンサートを実行できないようにするトリガーを作成したいと考えています。トリガーを作成するために次のコードを試しました。トリガーは正常に作成されましたが、8 月の日付を挿入した後、挿入されました。これは想定されていません。
CREATE OR REPLACE TRIGGER check_date
BEFORE INSERT ON event
DECLARE
event_date date;
BEGIN
IF (to_char(event_date, 'mm') = 8) THEN
raise_application_error(-20000, 'Concerts cannot be run during August');
END IF;
END;