Oracle-update
经验证的代码及注释
-- 选择所有的用户记录
SELECT
*
FROM
T_USER
-- 更新名字为hong的用户密码为123456
-- 如果不加where条件,那么就是更新全部的记录
-- 1 最普通的更新操作
UPDATE T_USER
SET pass = '123456'
WHERE
NAME = 'hong'
-- 2 给选择出的数据更新
UPDATE ( SELECT pass FROM T_USER WHERE NAME = 'hong' )
SET pass = '123456'
-- 3
-- Oracle中独有的闪回功能,如果更新update的时候忘记加上where的话,则会更新所有记录,这个时候我们就要可以使用Oracle的闪回功能
-- 将数据回退到更新之前的数据,Oracle数据库还是很强大的嘛,就是安装有点麻烦(万事开头难吧)
-- 查看该表某个时间的数据
SELECT
*
FROM
T_USER AS of TIMESTAMP to_timestamp ( '2019-03-19 08:00:00', 'yyyy-mm-dd hh24:mi:ss' );
-- 给表授权,不然无法使用闪回
ALTER TABLE T_USER ENABLE ROW movement;
-- 最后一步那当然就是将数据回退到更新之前的数据啦
flashback TABLE T_USER TO TIMESTAMP TO_TIMESTAMP ( '2019-03-19 08:00:00', 'yyyy-mm-dd hh24:mi:ss' );