原子性: 即整个事物是一个整体,要么这个事物全部执行成功,要么全部失败
一致性: 即事物执行状态结果 与 原数据形成统一。例如转账,总金额是不变的
隔离性: 在并发事物中,隔离开不能互相影响,但是也不能完全隔离,会降低效率
持久性:如果执行成功,数据库崩溃,如果重新启动,数据库已经执行完的状态不会变
我认为 这4个特性是互相关联的
只有原子性 确保 一致性 才能确保 。隔离性是为了避免降低效率与互相感染影响,持久性确保数据库非正常工作后的成功
mysql 提供开启事物与关闭事物
开启事物: start transaction
关闭事物:commit---成功 与 rollback--失败;
create table money(name varchar(20), qian int(20));
insert into money(name,qian) values('zs',1000);
insert into money(name,qian) values('ls',1000);
用update tableName set qian where name=''; 自己玩几遍
结论:
事物需要代码完美实现,如果事物没有完就提交 会造成数据库数据错误,这个得注意
我以为数据库会自动判断数据是否一致,发现并不是。需要人工自己来写代码保持一致性。