MySQL 取消自动Commit 功能

2019-06-12 0 By admin

在项目运维过程中,免不了直接操作生产环境的数据库。大多数是因为业务或者开发的需求,需要对生产中的数据做修改。
从项目安全方面考虑,因生产数据的重要性,如果避免因SQL编写过程中一个小疏忽,造成生产数据修改失败;不能或者很难恢复原始数据。

一、方法:取消SQL 的自动提交功能

set autocommit = 0;
delete from table_name where id =1;

按照这种方法的话,可以输出SQL语句执行后的影响;但不会真正的修改数据库中的数据。
#commit;
#提交上面的操作
#rollback;
回滚上面的操作

二、弊端:当前会话会对涉及的表添加排他锁

一般执行SQL语句,会将修改操作直接提交。如果我们取消自动提交的功能,对数据修改的操作SQL会对相应的数据添加排他锁。直到我们提交或者丢弃之前的操作。