就是很普通的一个触发器,都无法实现,这是瞎了吗?
create trigger track_check_conference 
before insert or update on track
for each row
begin
if new.con_name not in (select con_name from test.conference) then
set new.con_name=null;
end if;
end;

解决方案 »

  1.   

    create trigger track_check_conference 
    before insert or update on track
    for each row
    v_cnt number;
    begin
    select count(*) into v_cnt from test.conference where con_name=:new.con_name;
    if v_cnt=0 then
    set new.con_name=null;
    end if;
    end;
      

  2.   

    具体怎么做就不说了,2l给了正确的方式。你自己做的,if是判断不了new.con_name not in (select con_name from test.conference,不像java代码可以返回出来一个true Or flase的。
      

  3.   

    new.con_name not in (select con_name from test.conference) 的结果并不是返回的true和false,并不能作为if的判断条件