になったときに発生する次のトリガーがありupdated
ますY
。テーブルに値が存在しない場合にのみ、古い値を挿入したいと思いmy_hist
ます。同じレコードが存在する場合は、挿入しないでください。この最善の方法は、my_hist
テーブルの一意性をチェックするための制約を作成するか、トリガーでこの条件をチェックするかです。もしそうなら、どうすればトリガーでこれを行うことができますか?
または、重複レコードを挿入しないように、トリガーで my_hist テーブルの一意の制約を確認することは可能ですか。
CREATE OR REPLACE TRIGGER mytrig
AFTER UPDATE
ON mytab
FOR EACH ROW
WHEN (
new.updated = 'Y'
)
BEGIN
INSERT INTO my_hist
VALUES (
:old.id,
:old.no,
:old.start_date,
:old.end_date,
SYSDATE
);
END mytrig;
/