oracle触发器更新插入数据,Oracle 触发器 插入,更新,删除,数据同步,两表同步...

建表:

create table User_Info (

ID INTEGER not null,

UserName VARCHAR(30) not null,

PassWord VARCHAR(20) not null,

CreateDate Date not null,

Status INTEGER not null,

constraint PK_User_Info primary key (ID)

);

create table User_Info_temp (

ID INTEGER not null,

UserName VARCHAR(30) not null,

PassWord VARCHAR(20) not null,

CreateDate Date not null,

Status INTEGER not null,

constraint PK_User_Info_temp primary key (ID)

);

触发器写法:

create or replace trigger UserToTemp after insert or update or delete

on user_info for each row

declare

integrity_error exception;

errno integer;

errmsg char(200);

dummy integer;

found boolean;

begin

if inserting then

insert into User_info_temp(ID,UserName,PassWord,CreateDate,Status) values(:NEW.ID,:NEW.UserName,:NEW.PassWord,:new.CreateDate,:NEW.Status);

elsif updating then

update User_info_temp set ID=:NEW.ID,UserName=:NEW.UserName,PassWord=:NEW.PassWord,Status=:NEW.Status where id=:OLD.id;

elsif deleting then

delete from User_info_temp where id=:OLD.id;

end if;

exception

when integrity_error then

raise_application_error(errno, errmsg);

end;

测试数据:

insert into user_info(ID,UserName,PassWord,CreateDate,Status)values(1,'xier','222',to_date('2008-10-11','yyyy-mm-dd'),1)

update user_info u set u.status=3,u.username='xier' where u.id=1

delete from user_info u where u.id=1

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值