1.关于并发的问题,就是说如果我正在浏览,而另一用户正在修改。就会出错。
set transaction read only
select * from customers where name='tree';
commit;
2.P227事务及回滚。
同生共死。。
显示事务被用begin transaction 与 end transaction 标识起来,其中的 update 与 delete 语句或者全部执行或者全部不执行。。 如:
begin transaction T1
update student
set name='Tank'
where id=2006010
delete from student
where id=2006011
commit
end transaction T1
3.
简单地说,事务是一种机制,用以维护数据库的完整性。
其实现形式就是将普通的SQL语句嵌入到Begin Tran...Commit Tran 中(或完整形式 Begin Transaction...Commit Transaction),当然,必要时还可以使用RollBack Tran 回滚事务,即撤销操作。
利用事务机制,对数据库的操作要么全部执行,要么全部不执行,保证数据库的一致性。需要使用事务的SQL语句通常是更新和删除操作等。
有一点要注意,事务不支持嵌套,即不允许出现类似这样的形式:
Begin Tran
...
Begin Tran
...
Commit Tran
...
Commit Tran
当然了,查询操作不必使用事务,因为查询不改变数据,不会破坏完整性。