台州做网站比较好的有哪些,wordpress破解密码,上传网站图片不显示,开发者选项怎么打开#xff0c;今天开发人员问我如何快速并方便的查出一张表最近被更改的记录#xff0c;这个需求很简单#xff0c;由于是查最近被更改的数据#xff0c;查回滚段就可以#xff0c;下面是我做的小实验。 SQL create table test(id number,name varchar2(10),gender varc… 今天开发人员问我如何快速并方便的查出一张表最近被更改的记录这个需求很简单由于是查最近被更改的数据查回滚段就可以下面是我做的小实验。 SQL create table test(id number,name varchar2(10),gender varchar2(5));
表已创建。
SQL insert into test values(1,宋春风,男);
已创建 1 行。
SQL insert into test values(2,叶民,男);
已创建 1 行。
SQL insert into test values(3,白冰,男);
已创建 1 行。
SQL insert into test values(4,方巍森,男);
已创建 1 行。
SQL insert into test values(5,孙书祯,男);
已创建 1 行。
SQL insert into test values(6,史波,男);
已创建 1 行。
SQL commit;
提交完成。 利用下面的SQL就可以查处最近更改的数据。 SQL SELECT ID,NAME,VERSIONS_STARTTIME,VERSIONS_ENDTIME,VERSIONS_OPERATION
FROM TEST VERSIONS BETWEEN TIMESTAMP MINVALUE AND MAXVALUE WHERE
VERSIONS_STARTTIME IS NOT NULL ORDER BY VERSIONS_STARTTIME DESC;ID NAME GENDE VERSIONS_STARTTIME VERSIONS_ENDTIME V
---------- ------ ----- ------------------------- ------------------------- -6 史波 男 30-11月-11 04.02.28 下午 I5 孙书祯 男 30-11月-11 04.02.28 下午 I1 宋春风 男 30-11月-11 04.02.28 下午 I3 白冰 男 30-11月-11 04.02.28 下午 I2 叶民 男 30-11月-11 04.02.28 下午 I4 方巍森 男 30-11月-11 04.02.28 下午 I
已选择6行。 修改几条数据和接下来的查询做对比。 SQL UPDATE TEST SET GENDER女 WHERE NAME孙书祯;
已更新 1 行。
SQL COMMIT;
提交完成。
SQL UPDATE TEST SET GENDER女 WHERE NAME史波;
已更新 1 行。
SQL COMMIT;
提交完成。 再次查询被修改的数据就可以看到被修改和修改前的数据。 SQL SELECT ID,NAME,GENDER,VERSIONS_STARTTIME,VERSIONS_ENDTIME,
VERSIONS_OPERATION FROM TEST VERSIONS BETWEEN TIMESTAMP MINVALUE AND
MAXVALUE WHERE VERSIONS_STARTTIME IS NOT NULL ORDER BY
VERSIONS_STARTTIME DESC;ID NAME GENDE VERSIONS_STARTTIME VERSIONS_ENDTIME V
---------- ------ ----- ------------------------- ------------------------- -6 史波 女 30-11月-11 04.15.07 下午 U5 孙书祯 女 30-11月-11 04.14.31 下午 U4 方巍森 男 30-11月-11 04.02.28 下午 I3 白冰 男 30-11月-11 04.02.28 下午 I2 叶民 男 30-11月-11 04.02.28 下午 I1 宋春风 男 30-11月-11 04.02.28 下午 I6 史波 男 30-11月-11 04.02.28 下午 30-11月-11 04.15.07 下午 I5 孙书祯 男 30-11月-11 04.02.28 下午 30-11月-11 04.14.31 下午 I
已选择8行。 再修改几条数据后后查询。 SQL delete from test WHERE NAME史波;
已删除 1 行。
SQL delete from test WHERE NAME孙书祯;
已删除 1 行。
SQL commit;
提交完成。
SQL SELECT ID,NAME,GENDER,VERSIONS_STARTTIME,VERSIONS_ENDTIME,
VERSIONS_OPERATION FROM TEST VERSIONS BETWEEN TIMESTAMP MINVALUE AND
MAXVALUE WHERE VERSIONS_STARTTIME IS NOT NULL ORDER BY
VERSIONS_STARTTIME DESC;ID NAME GENDE VERSIONS_STARTTIME VERSIONS_ENDTIME V
---------- ------ ----- ------------------------- ------------------------- -5 孙书祯 男 30-11月-11 04.26.02 下午 D6 史波 男 30-11月-11 04.26.02 下午 D6 史波 女 30-11月-11 04.15.07 下午 30-11月-11 04.19.08 下午 U5 孙书祯 女 30-11月-11 04.14.31 下午 30-11月-11 04.19.08 下午 U2 叶民 男 30-11月-11 04.02.28 下午 I3 白冰 男 30-11月-11 04.02.28 下午 I4 方巍森 男 30-11月-11 04.02.28 下午 I5 孙书祯 男 30-11月-11 04.02.28 下午 30-11月-11 04.14.31 下午 I1 宋春风 男 30-11月-11 04.02.28 下午 I6 史波 男 30-11月-11 04.02.28 下午 30-11月-11 04.15.07 下午 I
已选择10行。 通过以上小实验可以看出VERSIONS_STARTTIME是数据被修改的起始时间VERSIONS_ENDTIME是数据被修改后新数据的有效时间也就是VERSIONS_STARTTIME和VERSIONS_ENDTIME时间段内这条数据再没被修改过如果VERSIONS_ENDTIME为空就说明这天记录从VERSIONS_STARTTIME时间起再没被修改过。VERSIONS_OPERATION是修改状态I代表INSERTU代表UPDATED代表DELETE。此时如果想回滚INSERT的数据只需要DELETE反向操作即可如果想回滚UPDATE操作将数据反向UPDATE回去即可比如本实验已经可以看到进行UPDATE操作的是NAME为史波和孙书祯的两条记录而且也可以看到进行UPDATE之前的数据他们的性别是男所以只需要在做个反向UPDATE将性别该为男即可实现回退如果要回滚DELETE操作同样做个INSERT操作将删除的数据在插回去即可。 注此SQL只能查询到回滚段内的信息超出回滚段范围这个SQL就无能为力了需要借助LOGMGR工具挖掘日志了详见http://www.dbdream.org/?p149。转载于:https://www.cnblogs.com/wzmenjoy/archive/2012/01/17/2367636.html