#查看事务是否开起,默认开启SHOW VARIABLES LIKE 'autocommit';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不会
