学习数据库的第七天

一、触发器

select *from student;

create or replace trigger logStudent after insert on student declare begin dbms_output.put_line('增加成功'); end;

set SERVEROUTPUT on; insert into student(stuno,stuname,stuage) values(3,'ls',11);

总结:

无论修改或者增加多少次,触发器只执行一次,默认是语句触发器,作用于表

语句级触发器:作用于表只触发一次

行级触发器:作用与每一行,每满足一次条件 都执行一次,可以执行多次触发器

数据校验: web前端 onsubmit onblur --> 控制器 Servlet/springMvc if()

-->数据库 触发器

一、闪回

作用:将错误的DML操作并Commit提交过后没有办法回滚(rollback);

还原删除表 drop table xxx;

获取表上的历史记录

show parameter undo;

undo_retention: 900 超过闪存区的数据 必须在900秒内闪回

alter system set undo_retention = 1200 scope= both;

both|memory 当前数据库,重启无效 | spfile 当前数据库无效 重启有效;

要闪回必须知道时间点。

类型:

闪回表中的数据:将表中的数据 回退到历史的某一个点:

闪回删除的表:还原表

查看回收站 表show recyclebin

flashback table 表名 to before drop;

flashback table "回收站中的名" to before drop;

闪回事务查询:undo_sql

闪回数据库:数据库中的数据回退到某一点

闪回归档日志

闪回删除的表:还原表

闪回事务查询:undo_sql

闪回版本查询:

版本信息:伪列

create table tb_version(id number,name varchar2(10));

insert into tb_version values(11,'al');

insert into tb_version values(12,'al');

insert into tb_version values(13,'al');

commit;

insert into tb_version values(21,'al');

insert into tb_version values(22,'al');

insert into tb_version values(23,'al');

commit;

insert into tb_version values(31,'al');

insert into tb_version values(32,'al');

insert into tb_version values(33,'al');

commit;

用管理员授权

alter database add supplemental log data;

伪列查看

select id,name ,versions_xid,versions_operation,versions_starttime,versions_endtime from tb_version versions between timestamp minvalue and maxvalue;

delete from "SCOTT"."TB_VERSION" where ROWID = ''

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值