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' );

截图

Oracle-update