一、前言:
hello,小伙伴们大家好,在每次是利用存储过程和修改数据的时候,我们往往会害怕数据出错等情况发生,今天就来和大家分享几个实用的sql语句,来规避挥着解决这些问题。
二、内容
1、复制出备用表的sql语句
①复制表结构和数据到新表 注意:new_table中没有了old_table中的primary key,Extra,auto_increment等属性,需要自己手动加,具体参看后面的修改表即字段属性
sql:create table new_table(新表名) as select * from old_table (旧表名)
②只复制表结构,不复制表数据到新表
sql:create table new_table(新表名) as select * from old_table(旧表名) where 1=2
③复制旧表数据到新表(新旧表的结构一样)
insert into new_table select * from old_table
④复制旧表数据到新表(新旧表结构不一样)
insert into new_table(field1,field2,.....) select field1,field2,field3 from old_table;
2、数据回闪(将数据恢复到莫个具体时间点)
① 先查询莫个时刻数据
select * from table_name(表名) as of timestamp to_timestamp('2021-01-01 12:00' , 'yyyy-mm-dd hh24:mi:ms')
②确认数据无误后开始回闪数据
alter table table_name(表名) enable row movement; flashback table table_name(表名) to timestamp to_timestamp ('2021-01-01 12:00:00' ,'yyyy-mm-dd hh24:mi:ss')