1.事务主要用于处理操作量大,复杂度高的数据
2.事务是必须满足4个条件(ACID):
原子性(Atomicity,或称不可分割性)
一致性(Consistency)
隔离性(Isolation,又称独立性)
持久性(Durability)
3.MySQL事务管理
3.1.在 MySQL 中只有使用了 Innodb 数据库引擎的数据库或表才支持事务。
3.2.事务处理可以用来维护数据库的完整性,保证成批的 SQL 语句要么全部执行,要么全部不执行。
3.3.事务用来管理 insert,update,delete 语句
4.MYSQL 事务处理主要有两种方法:
1、用 BEGIN, ROLLBACK, COMMIT来实现
BEGIN 开始一个事务
ROLLBACK 事务回滚
COMMIT 事务确认
2、直接用 SET 来改变 MySQL 的自动提交模式:
SET AUTOCOMMIT=0 禁止自动提交
SET AUTOCOMMIT=1 开启自动提交
代码演示
-- 创建数据表
CREATE TABLE runoob_transaction_test( id INT(5)) ENGINE=INNODB;
SELECT * FROM runoob_transaction_test;
-- 开始事务
BEGIN;
-- 可以将多个增删改操作写入一个事务中
INSERT INTO runoob_transaction_test VALUE(1);
INSERT INTO runoob_transaction_test VALUE(2);
ROLLBACK; -- 回滚生效,因为数据还未提交
INSERT INTO runoob_transaction_test VALUE(7);
INSERT INTO runoob_transaction_test VALUE(8);
-- 提交事务后,就不能再回滚
COMMIT;
-- ROLLBACK; 回滚无效,因为数据已经提交
-- 再次查询,发现只有7,8插入生效,1,2因为回滚插入失败
SELECT * FROM runoob_transaction_test;