+ -
当前位置:首页 → 问答吧 → 做一个关于触发器登记表修改信息的问题,新手请教!

做一个关于触发器登记表修改信息的问题,新手请教!

时间:2011-11-15

来源:互联网

有用户u1和u2,有一个表t1,t2。t1表在u1用户下,t2表在u2用户下。u1和u2用户都会对表t1(有id,name,age字段)做修改,如何利用触发器实现只记录u1用户对表t1的修改信息。每一条修改信息都要存储到t2表中。

作者: gwbgwb0702   发布时间: 2011-11-15

SQL code
create or replace trigger tri_test
  before INSERT OR DELETE OR UPDATE on aa  
  for each row
declare
  -- local variables here
  l_user VARCHAR2(20);
BEGIN
  SELECT USER INTO l_user FROM dual;
  IF USER='u1' THEN
            IF inserting THEN
               INSERT INTO u2.t2(action) VALUES('INSERT');
            ELSIF updating THEN
              INSERT INTO u2.t2(action) VALUES('UPDATE');
            ELSE
              INSERT INTO u2.t2(action) VALUES('DELETE');
            END IF;
  END IF;
end tri_test;

作者: cosio   发布时间: 2011-11-15

引用 1 楼 cosio 的回复:
SELECT USER INTO l_user FROM dual;

第一次知道可以这样用:)

作者: yixilan   发布时间: 2011-11-15

SQL code
create or replace trigger tri_test
  before INSERT OR DELETE OR UPDATE on aa  
  for each row
declare
  -- local variables here
  l_user VARCHAR2(20);
BEGIN
  SELECT USER INTO l_user FROM dual;
  IF l_user='u1' THEN   --错了,这里应该是l_user
            IF inserting THEN
               INSERT INTO u2.t2(action) VALUES('INSERT');
            ELSIF updating THEN
              INSERT INTO u2.t2(action) VALUES('UPDATE');
            ELSE
              INSERT INTO u2.t2(action) VALUES('DELETE');
            END IF;
  END IF;
end tri_test;

作者: cosio   发布时间: 2011-11-15

热门下载

更多