日期:2014-05-16 浏览次数:20447 次
?
所谓事务,就是针对数据库的一组操作(多条sql)
位于同一个事务的操作具备同步的特点,也就是要么都成功,要么都失败
?
在实际中,我们的很多操作都是需要由多条sql来共同完成的,例如,A账户给B账户转账就会对应两条sql
update?account?set?money=money-100?where?name=‘a’;
update?account?set?money=money+100?where?name=‘b’;
假设第一条sql成功了,而第二条sql失败了,这样就会导致a账户损失了100元,而b账户并未得到100元
?
如果将两条sql放在一个sql中,当第二条语句失败时,第一条sql语句也同样不会生效,
这样a账户就不会有任何的损失
?
?
默认情况下,我们向数据库发送的sql语句是会被自动提交的,开启事务就是相当于关闭自动提交功能,改为手动提交,我们只需要将提交事务的操作放在最后一个操作,这样一来,如果在提交事务之前出现异常,由于没有执行提交操作,事务中未提交的操作就会被回滚掉
?
account.sql
create?table?account(
id?int?primary?key?auto_increment,
name?varchar(40),
money?float
)character?set?utf8?collate?utf8_general_ci;