create or replace trigger TRG_VT_BBS_BOARD_DELETE
  before delete on vt_project  
  for each row
declare
  -- local variables herebegin
  delete vt_bbs_board where blockid=:old.projectid;
  delete vt_bbs_boardmaster where blockid=:old.projectid;
  exception
     when others then
         raise_application_error(-20000,'ERROR trg_pets_upper_pet_kind: ' || SQLERRM);end TRG_VT_BBS_BOARD_DELETE;当我只有一个删除项(delete vt_bbs_board where blockid=:old.projectid;)时没错误,但是加上delete vt_bbs_boardmaster where blockid=:old.projectid;这一下项,执行vt_project删除记录时就出现错误,是不是不能这样写呀?

解决方案 »

  1.   

    vt_bbs_board和vt_bbs_boardmaster 是不是有外键引用?
      

  2.   

    谢谢你的回复,vt_bbs_board 主键BLOCKID
    vt_bbs_boardmaster 主键BLOCKID, MEMBERID
    是不是要删除vt_bbs_boardmaster中的BLOCKID主键
      

  3.   

    vt_bbs_boardmaster 主键MEMBERID是不是和别的外键相连啊??
      

  4.   

    如果两个表有外键引用,就设置级联删除,那在触发器里只需要删除主表记录就可以了,不用两条delete语句.
      

  5.   

    是阿,MEMBERID还是vt_bbs_member表的主键,我该怎么办,是不是要先删除vt_bbs_member表中的记录再加上delete vt_bbs_member where projectid=:old.projectid;