当不控制创建,更新,读取,删除时,会出现什么问题?
需要在购买后及时更新数据,避免发生错误。
什么是事务?
事务是一组数据库操作语句(DML),一组要么全部成功,要么全部失败。
事务是多个操作构成的实现一个事情的整体。
一个MySQL数据库,肯定不是一个事务在运行,所以当出现冲突时,那些执行一半的sql语句组成的事务,应该怎么办呢?
备注:
sql语句:
- DDL(定义数据库对象,表与列),
- DML(用于操作数据库表中的记录数据),
- DQL(查询数据),
- DCL(定义访问权限和安全级别)
所以,事务不能单单是sql语句的组合,还需要有以下属性。
- 原子性:一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。
- 一致性:在事务开始之前和事务结束以后,数据库的完整性没有被破坏。这表示写入的资料必须完全符合所有的预设规则,这包含资料的精确度、串联性以及后续数据库可以自发性地完成预定的工作。
- 隔离性:数据库允许多个并发事务同时对其数据进行读写和修改的能力,隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致。事务隔离分为不同级别,包括读未提交( Read uncommitted )、读提交( read committed )、可重复读( repeatable read )和串行化( Serializable )
- 持久性:事务处理结束后,对数据的修改就是永久的,即便系统故障也不会丢失。