案例
建立一个触发器,当员工表里某个字段变动的时候 把变动信息插入到某张表中。
首先建立员工表
create table GY_YGDM (
GYDM VARCHAR2(30),
USERNAME VARCHAR2(50),
PASSWORD VARCHAR2(90),
QYSMKDR VARCHAR(10)
);
COMMENT ON TABLE GY_YGDM
IS '员工代码';
comment on column GY_YGDM.GYDM
IS '工号';
comment on column GY_YGDM.USERNAM
IS '员工姓名';
comment on column gy_ygdm.password
is '密码';
comment on column gy_ygdm.qysmkdr
is '是否启用市民卡登入';
alter table GY_YGDM
ADD CONSTRAINT pk_gy_ygmd primary (YGMD);
要求 把每次qysmkdr标志改动的时候记录下 表名,修改时间,列名,原始值,现在值,修改了那个员工,备注信息
首先建表
create table updateLog(
tableName varchar2(50) not Null,
updateTime Date,
columName varchar(50),
oldValue varchar2(100),
newValue varchar2(100),
YGDM varchar2(20),
BZ varchar2(200)
);
新建触发器:
create or replace trigger TRA_GY_YGDM_QYSMKdr
after insert or update
on GY_YGDM
for each row
begin
IF :NEW.QYSMKDR <> :old.QYSMKDR then
insert into updateLog(tableName,updateTime,columName,oldValue,newValue,YGDM)
Values ('GY_YGDM',SYSDATE,'qysmkdr',:OLD.QYSMKDR,:NEW.QYSMKDR,:OLD.YGDM);
DBMS_OUTPUT.PUT_LINE('update ');
END IF;
end;
OK 完成任务。这张updateLog也可以扩展为用户 运用,