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
有没有解决方法或者更好的判断语句 展开
if exists (select............)会报错 function or pseudo-column 'EXISTS' may be used inside a SQL statement only
有没有解决方法或者更好的判断语句 展开
2个回答
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
把需要触发的字段写上,不触发的就别写了
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
把需要触发的字段写上,不触发的就别写了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |