1. #查看事务是否开起,默认开启
  2. SHOW VARIABLES LIKE 'autocommit';
  3. SHOW ENGINES;

事务的创建

一、隐式事务:事务没有明显的开启和结束的标记

  • 比如insert,update,delete语句
  • delete from表where id =1;

二、显式事务:事务具有明显的开启和结束的标记

  • 前提:必须先设置自动提交功能为禁用
  • SET autocommit=0;

步骤1:开启事务
set autocomnit=0;
start transaction;可选的
步骤2:编写事务中的sql语句(select、insert、update、delete)
语句1;
语句2:
…..
步骤3:结束事务
commit;提交事务
rollback;回滚事务——savepoint

#开启事务
SET autocommit=0;
START TRANSACTION;
#事务语句
UPDATE account SET balance = 500 WHERE username = '张无忌';
UPDATE account SET balance = 1500 WHERE username = '赵敏';
#结束事务
COMMIT;
ROLLBACK;

SELECT * FROM account;

#savepoint使用

SET autocommit=0;
START TRANSACTION;
DELETE FROM account WHERE id=25;
SAVEPOINT a;#设置保存点
DELETE FROM account WHERE id28;
ROLLBACK To a;回滚到保存点

delete和truncate在事务中使用时的区别

  • delete删除可以回滚到删除之前,而truncate不会