一、关于数据备份和还原
1.在工作中,经常碰到生产环境上面数据库数据需要进行一些变更或者改动,这个时候呢,很多人的第一反应就是先备份整张表为一张临时表,然后就开始对表数据进行操作,如果出现数据异常,需要回退的时候,就直接删除现在表,然后把备份临时表名字改回来
2.或者直接导出表、改表、出现异常想恢复表的时候直接删除现存表,在导入原表来恢复
二、上述存在问题
如果按照上述做法,那么你表面上看起来数据并没什么改变,实际上有可能并 没有恢复表原初样子
1.表数据可能在改的过程中已经发生别的数据变动
2.表的索引都无效了
3.如果表数据大,那你这个操作风险大
三、正确的恢复操作
1.建立临时表
2.把自己需要修改的表数据,语句写出来
如果发生异常,如何从临时表里面更新回来
例子:原表testa 备份临时表为atemp
select id,username,userage,address from a where id='1234'
update a set userage='20' where id='1234'
回退:
update testa a set a.userage=(select username from atemp b where a.id=b.id) where id='1234'
这个操作才是正确的,你学费了么