<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 0, comments - 77, trackbacks - 0, articles - 356
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    oracle10g中的事務

    Posted on 2008-02-24 17:20 semovy 閱讀(650) 評論(0)  編輯  收藏 所屬分類: Oracle數據庫方面

    ----------------------------------------------事務特性------------------------------------------------------------

    1.原子性(atomicity)  --事務處理要么全部進行,要么不進行。

    2.一致性(consistency) –事務處理要將數據庫從一種狀態轉變為另        一種狀態。

    3.隔離性(isolation) –在事務處理提交之前,事務處理的效果不能由系統中的其他事務看到。

    4.持久性(durability) –一旦提交了事務,他就永遠生效。

    5set autocommit on--設置數據庫系統環境為自動提交事務:

    SQL> set autocommit on;

    SQL> insert into t values(1,'2','2');

    已創建 1 行。

    提交完成。

    SQL> set autocommit off;

    SQL> insert into t values(1,'2','2');

    已創建 1 行。

    SQL> commit;

    提交完成。

    6.鎖:(防止進程之間因為搶占資源,產生死鎖而設定一種預防死鎖產生的機制)

    允許或者拒絕資源訪問的一種機制

    為了防止用戶在同一時間內并發的訪問和修改數據庫資源,orcale中使用不同類型的鎖控制對數據的并發訪問,以防止用戶之間出現破壞性的操作。

    鎖定的類型:

    1)行級鎖:行被排他鎖定

    2)表級鎖:共享鎖,共享更新鎖,排他鎖

    ---------------------------------------------------------

    行級鎖:

    行被排他鎖定,在某行的鎖被釋放之前,其他用戶不能修改此行,使用 commit rollback 命令釋放鎖

    Oracle 通過使用 INSERTUPDATE SELECTFOR UPDATE 語句自動獲取行級鎖

    SELECTFOR UPDATE 子句

    在表的一行或多行上放置排他鎖,用于防止其他用戶更新該行,可以執行除更新之外的其他操作,只有該用戶提交事務,其他用戶才能夠更新gname

    select * from goods where gid=1001

    for update of gname;

    server1                                            server2

    create table goods (gid int );               

    insert into goods values(1)  

    insert into goods values(2)  

    別的進程訪問該表時,可以執行除更新之外的其他操作    

    select * from goods where gid=1 for update of gid    訪問server1時,可以對goods表進行添加,刪除,查詢,但不能修改

    FOR UPDATE WAIT 子句是Oracle9i 中的新增功能:

    為了防止無限期地等待鎖定的行,等待間隔必須指定為數值文字,等待間隔不能是表達式、賦值變量或 PL/SQL
    變量

    select * from goods where gid=1001 for update of gname wait  3

    等待用戶釋放更新鎖的時間為3秒,否則超時。

    -------------------------------------------

    表級鎖:

    保護表的數據

    在多個用戶同時訪問數據時確保數據的完整性

    可以設置為三種模式:共享、共享更新和排他

    語法:

            Lock table < table_name> in  <mode>;

    --------------------

    共享鎖:僅允許其他用戶執行查詢操作,不能插入、更新和刪除,多個用戶可以同時在同一表中放置此鎖

    Lock  table  table_name

    in share  mode   [nowait];

    rollback   commit命令釋放鎖

    Nowait  關鍵字告訴其他用戶不用等待

    lock table<tabale_name>[,<table_name>,....]

    in share mode[nowait]

    ---------------------

    共享更新鎖:

    鎖定要被更新的行

    允許其他用戶同時查詢、插入、更新未被鎖定的行

    SELECT 語句中使用“FOR UPDATE”子句,可以強制使用共享更新鎖

    允許多個用戶同時鎖定表的不同行

    加鎖的兩種方法

    (1)lock table tab_name in share update mode;

    (2)Select column1, column2 From  goods Where gid=1001  For update of column1, column2

    lock table<tabale_name>[,<table_name>,....] in share update mode [nowait]

    -------------------------

    排他鎖:

    與其他兩種鎖相比,排他鎖是限制性最強的表鎖,僅允許其他用戶查詢數據,不允許執行插入、刪除和更新操作,在同一時間僅允許一位用戶在表上放置排他鎖

    共享鎖與此相反

    lock table<tabale_name>[,<table_name>,....]

    in exclusive mode [nowait]

    主站蜘蛛池模板: 久久精品成人免费观看| 久青草视频97国内免费影视| 999任你躁在线精品免费不卡| 亚洲乱码精品久久久久..| 2022免费国产精品福利在线| 在线观看亚洲av每日更新| 最近中文字幕免费大全| 亚洲成av人片天堂网| 无码国产精品一区二区免费模式| 亚洲AV无码成人精品区在线观看 | 最近最好的中文字幕2019免费| 亚洲欧洲另类春色校园网站| 毛片免费在线播放| 亚洲AV女人18毛片水真多| 亚洲成A人片77777国产| 巨胸喷奶水视频www免费视频| 久久亚洲高清观看| 久久久久久精品成人免费图片| 亚洲a级片在线观看| 国产真实伦在线视频免费观看| 人妻免费久久久久久久了| 亚洲第一极品精品无码久久| 8x8x华人永久免费视频| 亚洲人成欧美中文字幕| 亚洲欧洲中文日韩久久AV乱码| 暖暖免费在线中文日本| 亚洲国产日韩在线人成下载| 日本一线a视频免费观看| jizz免费在线观看| 亚洲天堂一区在线| 国产猛烈高潮尖叫视频免费 | 日韩久久无码免费毛片软件| 亚洲国产第一站精品蜜芽| 2020因为爱你带字幕免费观看全集 | 亚洲电影一区二区三区| 成人性生交视频免费观看| 一级毛片免费毛片毛片| 亚洲精品免费在线视频| 国产一级淫片a免费播放口之| 男人的天堂网免费网站| 色欲色欲天天天www亚洲伊|