关于Oracle的解发器

liuhengwinner 2012-04-20 07:11:48
表1
create table TBL_AGENT_STATUS
(
USER_CODE VARCHAR2(12),
CURRENT_QUEUE_ID VARCHAR2(40),
)
表2
create table TBL_REST_WAITING_QUEUE
(
USER_CODE VARCHAR2(12),
QUEUE_LIST VARCHAR2(50),
REQ_TYPE INTEGER
)

当表1的 CURRENT_QUEUE_ID=2时删除表2中的 User_CODE相同的记录
...全文
215 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
gangma2 2014-03-20
  • 打赏
  • 举报
回复
create or replace trigger tri_delete after insert or update of CURRENT_QUEUE_ID on TBL_AGENT_STATUS for each row when (new.CURRENT_QUEUE_ID='2') begin delete from TBL_REST_WAITING_QUEUE where USER_CODE=:new.USER_CODE; end;
sych888 2014-03-19
  • 打赏
  • 举报
回复
CREATE TRIGGER Test_Increase1 after insert or update ON TBL_AGENT_STATUS FOR EACH ROW begin if (:new.CURRENT_QUEUE_ID=2) then delete from TBL_REST_WAITING_QUEUE t where t.USER_CODE=:new.USER_CODE; end if; end; /
WSZHAO_SELECT 2014-03-19
  • 打赏
  • 举报
回复
create or replace trigger test_tri after delete on a for each row begin delete from a02 where zd1 = :old.id; end test_tri;
秋雨飘落 2012-04-22
  • 打赏
  • 举报
回复
CREATE OR REPLACE TRIGGER test
AFTER UPDATE ON TBL_AGENT_STATUS
FOR EACH ROW
BEGIN
IF :NEW.CURRENT_QUEUE_ID=2 then
DELETE FROM TBL_REST_WAITING_QUEUE WHERE USER_CODE IN(
SELECT DISTINCT USER_CODE FROM TBL_REST_WAITING_QUEUE
GROUP BY USER_CODE HAVING COUNT(1) > 1
);
END IF;
END;
jdsnhan 2012-04-20
  • 打赏
  • 举报
回复
SQL> select * from a;

ID USERID USERNAME
---------- -------------------- ----------
1 .net1 20120201
1 .net2 20120202
1 .net3 20120204
2 .net4 20120205
2 .net5 20120206
4 20120229
5 20120301
5 20120305
5 20120307
5 20120309
5 20120310
5 20120311
3 .net6 20120228

13 rows selected

SQL> select * from a02;

ZD1 ZD3
--- ---
1 A1
2 B1

SQL> delete from a where id=1;

3 rows deleted

SQL> commit;

Commit complete

SQL> select * from a;

ID USERID USERNAME
---------- -------------------- ----------
2 .net4 20120205
2 .net5 20120206
4 20120229
5 20120301
5 20120305
5 20120307
5 20120309
5 20120310
5 20120311
3 .net6 20120228

10 rows selected

SQL> select * from a02;

ZD1 ZD3
--- ---
2 B1


--触发器内容
create or replace trigger test_tri
after delete on a
for each row
declare
-- local variables here
begin
delete from a02 where zd1 = :old.id;
end test_tri;

春鼠哥 2012-04-20
  • 打赏
  • 举报
回复
CREATE OR REPLACE TRIGGER del_Code
AFTER UPDATE OF CURRENT_QUEUE_ID ON TBL_AGENT_STATUS FOR EACH ROW
BEGIN
if :old.CURRENT_QUEUE_ID=2 then
delete from TBL_REST_WAITING_QUEUE where USER_CODE=:old.USER_CODE;
end if;
END;
wflyxiaonian 2012-04-20
  • 打赏
  • 举报
回复
create or replace trigger test_tri
after delete on a
for each row
declare
-- local variables here
begin
delete from a02 where zd1 = :old.id;
end test_tri;

huan_lxyd 2012-04-20
  • 打赏
  • 举报
回复
CREATE OR REPLACE TRIGGER test
AFTER UPDATE ON TBL_AGENT_STATUS
FOR EACH ROW
BEGIN
IF :NEW.CURRENT_QUEUE_ID=2 then
DELETE FROM TBL_REST_WAITING_QUEUE WHERE USER_CODE IN(
SELECT DISTINCT USER_CODE FROM TBL_REST_WAITING_QUEUE
GROUP BY USER_CODE HAVING COUNT(1) > 1
);
END IF;
END;

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧