300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > oracle 触发器 select :new 帮忙看下这个oracle触发器 在select后面的where语句

oracle 触发器 select :new 帮忙看下这个oracle触发器 在select后面的where语句

时间:2018-12-09 05:24:07

相关推荐

oracle 触发器 select :new 帮忙看下这个oracle触发器 在select后面的where语句

delete from flow_status_mgr t where t.ownuserid

= :new.id or t.cususerid = :new.id;

END;

把when放在begin上面就可以了,对了,要是用if怎么用啊,怎么定义啊

------解决方案--------------------------------------------------------

因为你没定义 old as old row啊。。。

------解决方案--------------------------------------------------------

引用

貌似我把if改成when 然后放到begin上面就可以用了

执行语句放在begin前面??怎么可能啊。。。

话说我没理解你的数据库设计

如果一个user向一个客户提交了多个纪录

又如果一个user向多个客户都提交了纪录

怎么会因为删除了其中一条记录就删除user对应的department id?

那剩下的纪录对应什么???

而且你删除了整个depart, 那同部门的其他人员对应谁??

你成功的原因也许是只用1 2条记录做的测试

不论从编程规范还是逻辑设计,我都觉得有点问题哦

------解决方案--------------------------------------------------------

引用

create or replace

TRIGGER MODIFYSYSUSER

AFTER UPDATE OF ISACTIVE ON SYS_USER

FOR EACH ROW

WHEN (old.isactive=1and new.isactive=0)

BEGIN

delete from flow_status_mgr t where t.ownuserid

= :new.id or t.cususerid = :new.id;

END;

把when放在begin上面就可以了,对了,要是用if怎么用啊,怎么定义啊

我会写成

TRIGGER MODIFYSYSUSER AFTER UPDATE OF ISACTIVE ON SYS_USER FOR EACH ROW BEGIN IF(old.isactive = land AND new.isactive=0) DELETE FROM ... ...END IF;END;

你的代码写的我太无语了

------解决方案--------------------------------------------------------

中间 and我写了2次 笔误请忽略

------解决方案--------------------------------------------------------

可参考:

Oracle查询语句中的select * from tb1, tb2 where

tb1.id=tb2(id+)这里的(id+)起什么作用啊解决方案另这里的部分程序错误异常BUG解决方案

%D%A

|

%D%A

oracle存储过程|/oracle-develop/177537.html

oracle 触发器 select :new 帮忙看下这个oracle触发器 在select后面的where语句有有关问题 但不知道什么有关问题...

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。