sqlserver
写操作必须向服务器申请并获得锁才能修改数据,而且读操作必须申请和获得读锁才能查询数据。多用户可以同时读取数据,而一个表或者表中的部分列只能分配一个写锁,并且拒绝读请求一直等到写锁释放。
锁有行、页、表锁三种类型,会发生锁升级。
用savetransaction 来创建保存点。
oracle
写操作必须向服务器申请并获得锁才能修改数据,而读操作不需要任何锁就能查询数据。另外服务器必须保证从查询开始到结束读操作看到一个一致的视图,即使其他用户修改,数据看上去也要相同,这个称为多版本控制。
只有行锁。
MySQL
两种都有,取决与用到引擎。
锁有行、页、表锁三种类型,会发生锁升级。
MySQL中的事务有保存点的说法,即在事务中可以创建一个保存点 savepoint <保存点名称>,当需要回滚的时候用rollback to savepoint <保存点名称> 即可。