トリガー コード (テーブルの変更など) に問題があり、何が問題なのかわかりません。
基本的に、テーブル SEMESTER(id_semester, semester_name, begin_date, end_date) があります。行の挿入時に、semester_name を begin_date の内容に応じた値で更新したいと考えています。たとえば、begin_date が '2000-01-01' の場合、semester_name の値を W00 (2000 年冬) にします。
私の最初の試みは、「挿入後」トリガーを作成することでしたが、テーブルの変更エラーのために機能しませんでした。ここにあります:
CREATE TRIGGER Test
BEFORE INSERT ON Semester
FOR EACH ROW
DECLARE
sem CHAR(1);
year CHAR(2);
BEGIN
-- begin_date is either 1, 5 or 9.
IF (EXTRACT(MONTH FROM :new.begin_date) = '1') THEN
saison := 'W';
ELSIF (EXTRACT(MONTH FROM :new.begin_date) = '5') THEN
saison := 'S';
ELSE
saison := 'F';
END IF;
year := TO_CHAR(:new.date_debut, 'MM');
UPDATE Semester
SET semester_name = CONCAT(sem, year)
WHERE id_semester = :new.id_semester;
END;
/
その後、「挿入前」トリガーを作成しようとしましたが、うまくいくと思いましたが、うまくいきませんでした。
誰でも私を正しい方向に向けることができますか?ありがとう!