答案:先给你讲讲什么是事务:首先事务拥有四大特性。即:原子性,一致性,持久性,隔离性。所谓原子性是指:事务执行的时候,要么全部执行,要么全部不执行。一致性是指:事务对数据库的操作是一致的。所谓持久性是指:事务一旦执行后,对数据库的操作是永久的,即使数据库到最后崩溃了,根据数据库的恢复功能,数据库也能恢复到事务执行后的状态。所谓隔离性是指:各个事务执行的时候,彼此之间互不影响。单独执行。截止到现在,事务的四大特性就给你讲完了。下面给你一个经典实例<银行转账>,你好好看看。
数据表是bank表:字段有:<customerName,currentmoney>即:顾客姓名,现有金额。
begin transaction
declare @Sum
update bank
set currentMoney=currentmoney+200 where customerName='李四'
update bank
set currentMoney=currentmoney-200 where customerName='王三'
set @Sum=(select currentmoney from bank where customerName='王三')
if(@Sum>=0)
begin
commit transaction
print '转账成功!'
end
else
begin
rollback transaction
print '转账失败!'
end
本事务的意思是:张三给李四转200元钱。即转账后张三少二百元钱,李四多二百元钱。转换为SQL语句就是:
update bank
set currentMoney=currentmoney+200 where customerName='李四'
update bank
set currentMoney=currentmoney-200 where customerName='王三'
转账成功的条件是:转账成功后,张三的剩余金额不能为负数。如果为负数,转账不成功。转换为SQL语句为:
set @Sum=(select currentmoney from bank where customerName='王三')
if(@Sum>=0)
begin
commit transaction
print '转账成功!'
end
else
begin
rollback transaction
print '转账失败!'
end
实际事务很简单的。只要理解其中的道理,就可以了。
想想事务的原子性,一致性,隔离性,持久性,有什么感悟?
上一个:零基础 非计算机专业 可以学习JAVA吗 有什么好的培训学校
下一个:怎么样学好Java的面向对象呢?