oracle触发器中需要通过字段来进行判断

比如建立一个触发器,当A表中的B字段数据是'C'的时候,进行后面的PL/SQL语句,我用ifexists(select............)会报错functionor... 比如建立一个触发器,当A表中的B字段数据是'C'的时候,进行后面的PL/SQL语句,我用
if exists (select............)会报错 function or pseudo-column 'EXISTS' may be used inside a SQL statement only
有没有解决方法或者更好的判断语句
展开
 我来答
匿名用户
2017-02-22
展开全部
插入A之前的触发示例:
create or replace trigger "TRIG_TEST_A"
   before insert on "A"
   for each row
begin
  if inserting then
    if :NEW."BM" = 'C' then  --如果插入的A记录,BM字段等于C,则写入A_BAK
      insert into A_BAK
        (BM, TEACHERS, ID)
      values
        (:NEW."BM", :NEW."TEACHERS", :NEW."ID"); 
    end if; 
  end if; 
end;

具体需求,根据触发器的语法进行调整

追问
if inserting 
....
end if
这个判断语句是做什么的
追答
INSERTING:当触发事件是INSERT时,取值为TRUE,否则为FALSE。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2017-02-22
展开全部
触发器的语法
CREATE [OR REPLACE] TRIGGER trigger_name
{BEFORE | AFTER }
{INSERT | DELETE | UPDATE [OF column [, column …]]}
[OR {INSERT | DELETE | UPDATE [OF column [, column …]]}...]
ON [schema.]table_name | [schema.]view_name
[REFERENCING {OLD [AS] old | NEW [AS] new| PARENT as parent}]
[FOR EACH ROW ]
[WHEN condition]

update后面可以跟 of column,column..... on tablename
把需要触发的字段写上,不触发的就别写了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式