在mysql命令行的默认下,事务都是自动提交的,sql语句提交后马上会执行commit操作。因此开启一个事务必须使用begin,start
transaction,或者执行 set autocommit=0;
可以使用的事务控制语句
事务控制语句:
BEGIN或START TRANSACTION:显式地开启一个事务
COMMIT:提交事务。使已对数据库进行的所有修改成为永久性的
ROLLBACK:回滚。会结束用户的事务,并撤销正在进行的所有未提交的修改
SAVEPOINT identifier:SAVEPOINT允许在事务中创建一个保存点,一个事务中可以有多个SAVEPOINT
RELEASE SAVEPOINT identifier:删除一个事务的保存点,当没有指定的保存点时,执行该语句会抛出一个异常
ROLLBACK TO identifier:把事务回滚到标记点
SET TRANSACTION:设置事务的隔离级别。InnoDB存储引擎提供事务的隔离级别有READ UNCOMMITTED、READ COMMITTED、REPEATABLE READ和SERIALIZABLE