触发器学习之入门(增、删、改、增删改)
admin
2023-04-15 00:41:36
0


注:本文主要介绍使用触发器自动同步增、删、改的简单语句学习。

       如果在查阅中发现错误或不当的地方欢迎留言指出,大家相互学习。谢谢!


创建测试需要的表并插入数据,为了方便学习理解,这里列名都用的中文。

create table a(序号 VARCHAR2(10) primary key not null,姓名 VARCHAR2(20),岁数 number(3),地址 VARCHAR2(40));

create table b(序号 VARCHAR2(10) primary key not null,姓名 VARCHAR2(20),岁数 number(3),地址 VARCHAR2(40));

insert into a values (1,'张三',18,'中国');

insert into b values (1,'张三',18,'中国');

commit;


触发器自动同步INSERT

创建触发器:当A表中插入数据时自动同步插入到B表

create trigger inserts

after insert on a --表a中插入数据之后触发

for each row --行级别触发

begin --触发的操作如下

insert into b (序号,姓名,岁数,地址)

values(:new.序号,:new.姓名,:new.岁数,:new.地址);

end;

插入测试数据到A表

insert into a (序号,姓名,岁数,地址) values ('2','湛康颖','23','湖北');

commit;

查询验证可以看到A、B两表中数据已经得到同步。

select * from   a;

select * from   b;

触发器学习之入门(增、删、改、增删改)

触发器学习之入门(增、删、改、增删改)


触发器自动同步DELETE

创建触发器:当A表中删除数据时自动同步删除B表中数据

create trigger deletes

after delete on a --表a中删除数据之后触发

for each row --行级别触发

begin --触发的操作如下

delete from b where 序号=:old.序号;

end;

删除A表中序号为2的数据

delete a where 序号='2';

commit;

查询验证可以看到A、B两表中数据已经得到同步。

select * from a;

select * from b;

触发器学习之入门(增、删、改、增删改)

触发器学习之入门(增、删、改、增删改)


触发器自动同步UPDATE

创建触发器:当A表中更新数据时自动同步更新到B表

create or replace trigger updates

before update on a --表a中更新数据之后触发

for each row --行级别触发

begin --触发的操作如下

update b set 序号=:new.序号,姓名=:new.姓名,岁数=:new.岁数,地址=:new.地址

where 序号=:old.序号;

end;

更新A表中序号为1的记录,将张三改为李四

update a set 姓名='李四' where 序号='1';

commit;

查询验证可以看到A、B两表中数据已经得到同步。

select * from a;

select * from b;

触发器学习之入门(增、删、改、增删改)

触发器学习之入门(增、删、改、增删改)

测试完成后将触发器drop不然会影响下面操作。

drop trigger inserts;

drop trigger deletes;

drop trigger updates;


触发器自动同步INSERT、DELETE、UPDATE

创建触发器:当A表中有数据增删改时自动将操作同步到B表

create or replace trigger dmls

 after update or insert or delete on a --表a中增、删、改数据之后触发

 for each row --行级别触发

 begin --触发的操作如下

     if inserting then --如果是插入时运行下列插入语句,否则运行下一个判断

       insert into b (序号,姓名,岁数,地址)

       values(:new.序号,:new.姓名,:new.岁数,:new.地址);

     elsif deleting then --如果是删除时运行下列删除语句,否则运行下一个判断

       delete from b where 序号=:old.序号;

     else --运行下列更新语句

      update b set 序号=:new.序号,姓名=:new.姓名,岁数=:new.岁数,地址=:new.地址

      where 序号=:old.序号;

     end if;

    end;

对A表进行增删改操作进行测试

insert into a (序号,姓名,岁数,地址) values   ('3','奥巴马','58','美国');

delete a where 序号='1';

update a set 序号='1' where 序号='3';

commit;

查询验证可以看到A、B两表中数据已经得到同步。

select * from a;

select * from b;

触发器学习之入门(增、删、改、增删改)

触发器学习之入门(增、删、改、增删改)

相关内容

热门资讯

从一座“灯塔工厂”看海辰储能的... 央广网北京5月12日消息(记者 刘家怡)在重庆市铜梁区,每天有超过10万颗储能电芯下线,发往全球市场...
东莞松山湖高新区“两创融合”催... 当科学家听懂了企业话 东莞松山湖高新区“两创融合”催生新能源新动能 问起扎根东莞松山湖的新能源企业和...
厕所内装摄像头要监控啥 澎湃新闻记者 蒋立冬 阳柳厕所内装摄像头要监控啥“中学在男厕所安装摄像头”一事引发关注。5月11日晚...
原创 港... 大家普遍认为目前的任何钢材都经不起海水的侵蚀腐蚀,但是现如今它的到来将打破这一“铁”的定律!那就是S...
会“变形”的检测机器人Haza... 近日,香港生产力促进局、中广核(深圳)运营技术与辐射监测有限公司、中山大学、西安交通大学及本末科技有...
2025年美国制造业回流追踪 创纪录的投资与关税加码之下,美国制造业在2025年依然表现不佳。但可以合理预期,已宣布的投资将在不久...
原创 风... 那天傍晚,车从草原边上开过去,天色刚压下来,远处一排排白色大风机还在慢慢转。同行的人盯着看了半天,突...
官方调查报告:司机吸食打火机气... 11日,辽阳市应急管理局发布辽阳灯塔沈营线(S101)“10·8”较大道路运输事故调查报告。2024...
赖清德窜访媚外,金门老百姓却苦... 探访厦金大桥赖清德“偷渡式”窜访,岛内民众大骂:这边民生受阻,那边你还去给外国人“跪”。反观今年4月...
特朗普访华,通用汽车和福特高层... 【文/观察者网 潘昱辰 编辑/高莘】美国总统特朗普将于5月13-15日对中国进行国事访问。据白宫披露...