0
삽입중인 값을 이미 테이블에있는 값과 비교해야하는 트리거를 만듭니다. 삽입하기 때문에 이전 참조자를 여기에서 작동하지 않지만 어떻게 내가 이미 존재하는 참조 할 수 있습니까? 여기 내 테이블과 트리거 : 당신은 일반적으로 당신이 트리거에 삽입하고있는 테이블에서 선택할 수 없습니다sql 트리거 - 기존 행 값을 삽입중인 값과 비교하려고합니다.
create table events(eid char(2) primary key, cid char(2));
create table activities(mid char(2), eid char(2),
primary key (mid, eid),
constraint activities_fk foreign key (eid) references events(eid));
create or replace trigger check_valid
before insert or update on activities
for each row when (old.mid=new.mid)
declare
v_eid char(2);
v_cid char(2);
n_cid char(2);
begin
select eid into v_eid from activities
where mid=:new.mid;
select cid into v_cid from events
where eid=v_eid;
select cid into n_cid from events
where eid=:new.eid;
if v_cid=n_cid then
raise_application_error(-20000, 'Error');
end if;
end check_valid;
/
show errors;