MySQL中的事务:
事务(Transaction)(重点)
1、什么是事务?
一个事务是一个完整的业务逻辑单元,不可再分。
比如:银行账户转账,从A账户向B账户转账10000元,需要执行两条update语句:
update t_act set balance = balance - 10000 where actno = ‘act-001’;
update t_act set balance = balance + 10000 where actno = ‘act-002’;
以上两条DML语句必须同时执行成功,或者同时失败,不允许出现一条成功,一条失败。
要想保证以上两条语句同时执行成功,或者同时失败,那么就需要数据库中的“事务机制”。
事务执行成功用commit语句,执行失败用rollback语句。
了解一下,事务还有个命令叫savepoint,使用“savepoint a1”,然后若执行“rollback a1”就会回滚到上面a1的位置,从a1继续向下执行事务。
2、和事务有关的语句只有DML语句(insert,delete,update)。
为什么?因为它们这三个语句才会和数据库表当中的数据打交道。
事务的存在就是为了保证数据的完整性,安全性。
3、假设所有的业务都能使用1条DML语句完成,还需要事务吗?
这样的话就不需要事务了,但实际情况不是这样的,通常一个