关于数据库事务的基本概念,我还弄不明白。

04-06-14 rocknet
有这样一个例子,给一个班级添加学员,班级只能有50个人,现在要往里面添加n个学员,查询和添加要在同一个事务里完成。
在单机环境下,可以这么写:
select count(*) from aClass
if count+n<50 then
insert students to aClass
else
throw Exception
end if
但是在多用户环境下,是不是就得用到事务了,是不是照搬下来就可以了呢?
Transaction.begin
select count(*) from aClass
if count+n<50 then
insert students to aClass
else
Transaction.rollback
end if
Transaction.commit
这么简单吗?begin、commit、rollback的位置对不对呢?

banq
2004-06-19 14:33
事务是最复杂的,比多线程复杂多,全世界事务高手都在做容器平台了,不多,我只知道皮毛。

建议慢慢研究,前面帖子Jrog好像研究不少,你可和他交流。

bluemeteor
2004-06-22 14:32
SQLserver中这种情况可以用表级锁来实现 楼主用的什么数据库?