数据库事务:一般来讲是指数据库访问逻辑中一个最小的不可再分的工作单元;是一组对数据库的相对完整的逻辑单元操作。一个数据库事务,可以是一条SQL语句,也可以是一组SQL语句。
我们来看一个例子,比如,账户A向账户B转账100元,那么账户A必须减少100元,而账户B必须增加100元。这个操作是不可能分开的,是一个原子操作。账户A必须减少100元而账户B必须增加100元,不能出现A减少100元,B没有增加100元,也不能出现A没有减少100元,B增加了100元。操作必须是同时成功的或者同时失败的,必须是一致的。A和B的操作,是不能受到其他事务的干扰的从而影响结果的正确执行,并发的事务之间是需要隔离起来的,而且这个操作进行之后,A账户,和B账户的操作结果不可改变,必须把操作数据记录到磁盘,这是一个持久状态。以上就是数据库事务必须具备的四大特性。原子性(atomicity)、一致性(consistency)、隔离性(isolation)、持久性(durability),俗称ACID四大特性或四大原则。
在很多人的观念里,提到数据事务就是ACID四大原则,但是这四大原则是由谁来保障的呢?答案当然是数据库了。比如MYSQL数据库,你用MYISAM引擎的表搞搞事务试试?所以,要做数据库事务得有一个大前提,数据库必须是支持事务的。
如果使用的是INNODB引擎的表,默认情况下是开启了事务自动提交的,在不使用 start transation语句的情况下,任何一个insert update语句都是自动提交的,另外,insert update语句都是一个原子级操作噢,总不能写一条数据,或者修改一条数据还存在,只修改一半的情况吧?这一点先了解下,以后的学习中自由妙用。