西湖鱼 发表于 2018-10-21 10:08:50

sql更新数据的后悔药

sql的后悔药  

  
有时常常因为自己更新错一个sql语句,造成大规模的数据改变,不得不恢复备份数据,但是备份数据和实时数据会有一些差别,如果运气好,恢复数据和实施数据相差无几,但点子背的时间
  
会造成数据丢失极大的风险
  

  
mysql,提供了一个数据回滚的功能
  
第一步,先查看AutoCommit的状态
  
show variable like 'autocommit';
  

  
+---------------+-------+
  
| Variable_name | Value |
  
+---------------+-------+
  
| autocommit    | ON    |
  
+---------------+-------+
  
1 row in set (0.00 sec)
  

  
看到value为ON,也就是说sql语句的自动提交功能是开着的,
  
关闭自动提交功能,改成手动体提交,可有机会使数据回滚
  
set autocommit = 0;
  

  
mysql> show variables like'autocommit';
  
+---------------+-------+
  
| Variable_name | Value |
  
+---------------+-------+
  
| autocommit    | OFF   |
  
+---------------+-------+
  
1 row in set (0.00 sec)
  

  
更改后当你UPDATE ,DELECT,DROP操作后猛然发现错误时,可以
  
rollback;
  
使数据恢复到没有修改的状态
  

  

  
最后切记,操作完数据确保无误时
  
commit;
  
使数据修改生效,不然你直接exit后所有的更改会都没有保存


页: [1]
查看完整版本: sql更新数据的后悔药