postn_matrix
従業員のリストとその担当者の数を含む既存のテーブルがあります。組織内の位置。
ユーザーの位置が追加または削除されるたびに、対応するカウントがこのトリガーのテーブルに反映されます(VIA UPDATE)
これで、新しいユーザーがいる場合、そのユーザーにはエントリがないpostn_matrix
ため、そのユーザーの新しいレコードを挿入する必要があります(VIAINSERT)。これは、BASETABLEから取り込む必要があります。
アップデートは正常に機能しているようですが、新しいユーザーをテーブルに取り込むことができません。
私はこのケースをカーソルで処理しようとしてきました。しかし、それはまだ何の助けにもなりませんでした。専門家が私に光を見せてくれることを願っています..:)。カーソルの使用以外の提案は大歓迎です
CREATE OR REPLACE TRIGGER TRIG1
BEFORE INSERT OR DELETE ON (BASETABLE)
FOR EACH ROW
DECLARE
cursor c1 is
select person_id
from postn_matrix;
v_temp varchar2(15);
BEGIN
IF INSERTING THEN
open c1;
LOOP
fetch c1 into v_temp;
if v_temp!=:new.person_id THEN
insert into POSTN_MATRIX (PERSON_ID)
VALUES (:new.PERSON_ID);
else
UPDATE POSTN_MATRIX
//this is working fine ;
END IF;
end loop;
close c1;
END
/