TRIGERで履歴テーブルの○○フラグを更新
履歴データを管理するテーブルでは最新のデータを特定する為に削除フラグや最新フラグなどを定義していることがあります。
データをINSERTして、その後で1世代前のデータのフラグをUPDATEする・・・という冗長な処理はTRIGERを使うことでINSERTのみで済ませることができます。
CREATE TABLE BLOG ( ID NUMBER, W_DATE CHAR(8), TITLE VARCHAR(128), CONTENTS VARCHAR(1024), DEL_FLG CHAR(1) DEFAULT '0' ) ; ALTER TABLE BLOG ADD PRIMARY KEY (ID) ; CREATE OR REPLACE TRIGGER BLOG_I_TRIG BEFORE INSERT ON BLOG FOR EACH ROW BEGIN UPDATE BLOG SET DEL_FLG = '1' WHERE W_DATE = :NEW.W_DATE AND DEL_FLG = '0' ; END; ;