zoukankan      html  css  js  c++  java
  • Oracler的锁概念

    Oracle锁定机制大部分情况下是自动的。你不需要关心如何锁定想要更改的对象的细节,Oracle在后台自动维护它们。

    锁有两种级别:1.行级锁,2.表级锁。

    锁定的优点:

      一致性:一次只允许一个用户修改数据,从而提供统一的数据。

      完整性:向所有用户提供正确的数据。如果一个用户进行了更改并保存,那么所做的更改将反映给所有用户。

      并发性:允许多个用户访问同一数据。如一个用户在修改数据,其它用户可同时进行查询。

    行级锁:是一种排他锁,防止其他事务修改此行,但是不会阻止读取此行的操作,在使用INSERTUPDATEDELETE和SELECT……FOR UPDATE等语句时,Oracle会自动应用行级锁。

    OF子句用于指定即将更新的列,即锁定行上的特定列。

    例:

      select * from order_master where vencode='0002' for update of odate,del_date;

      update order_master set del_date='28-8月-05' where vencode='v002'

      commit;

    首先锁定要更新的行,防止其他用户更改这些行,然后用update命令执行更新操作,最后通过提交命令释放锁定。

    WAIT子句指定等待其他用户释放锁的秒数,防止无限期的等待。

    例:

      select * from order_master where vencode='v002' for update;

    用另一用户登录后执行 select * from order_master where vencode='v002' for update wait 5;

    由于要更新的行已经被锁定,上述命令在等待5秒钟之后返回并报错。

  • 相关阅读:
    深入JAVA注解之属性注解
    深入JAVA注解之方法注解
    C# 启动外部程序的几种方法
    在.NET中实现彩色光标/动画光标和自定义光标[转]
    C#实现汉诺塔问题
    ExecuteNonQuery()返回值注意点
    在VS2012下不安装VS2010编译VS2010的工程
    Windows 窗体的.Net 框架绘图技术
    使用DataSet Datatable 更新数据库的三种方式
    C#.net 之货币转换
  • 原文地址:https://www.cnblogs.com/dadaxiaolan/p/3685471.html
Copyright © 2011-2022 走看看