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存儲過程|http://www.myexception.cn/oracle-develop/177537.html
總結
以上是生活随笔為你收集整理的oracle 触发器 select :new,帮忙看下这个oracle触发器,在select后面的where语句有有关问题,但不知道什么有关问题...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【IntelliJ IDEA】添加一个新
- 下一篇: jetty部署多个web应用及将jett