事务
面试题:
原子性(Atomicity): 事务是不可分割的最小操作单位,要么同时成功,要么同时失败
一致性(Consistency) :事务完成时,必须使所有的数据都保持一致状态
隔离性(Isolation) :多个事务之间,操作的可见性
持久性(Durability) :事务一旦提交或回滚,它对数据库中的数据的改变就是永久的
-- 创建账户表
CREATE TABLE account(
id int PRIMARY KEY auto_increment,
name varchar(10),
money double(10,2)
);
-- 添加数据
INSERT INTO account(name,money) values('张三',1000),('李四',1000);
SELECT * FROM account;
UPDATE account SET money = 1000;
-- 转账操作
-- 开始事务
BEGIN;
-- 1. 查询李四的余额
-- 2. 李四金额 -500
UPDATE account SET money = money - 500 WHERE name = '李四';
-- 出错了
-- 3. 张三金额 +500
UPDATE account SET money = money + 500 WHERE name = '张三';
-- 提交事务
commit;
-- 回滚事务
ROLLBACK; -- 开启事务前的状态