日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

4.事务提交过程,事务基本概念,Oracle中的事务生命周期,保存点savepoint,数据库的隔离级别

發(fā)布時間:2024/9/27 数据库 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 4.事务提交过程,事务基本概念,Oracle中的事务生命周期,保存点savepoint,数据库的隔离级别 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

  • 事務(wù)提交過程

  • 事務(wù)

  • 基本概念

    概念:一個或者多個DML語言組成

    特點(diǎn):要么都成功,要么都失敗

    事務(wù)的隔離性:多個客戶端同時操作數(shù)據(jù)庫的時候,要隔離它們的操作,

    否則出現(xiàn):臟讀? 不可重復(fù)讀? 幻讀

    Oracle默認(rèn)情況下,事務(wù)是打開的

    commit案例:

    SQL> create table t1(tid int,tname varchar2(20));

    ?

    表已創(chuàng)建。

    ?

    SQL> select * from tab;

    ?

    TNAME????????????????????????? TABTYPE ?CLUSTERID

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

    BONUS????????????????????????? TABLE

    DEPT?????????????????????????? TABLE

    EMP??????????????????????????? TABLE

    EMP10????????????????????????? TABLE

    SALGRADE?????????????????????? TABLE

    T1??????? ?????????????????????TABLE

    ?

    已選擇6行。

    ?

    SQL> insert into t1(tid,tname) values(1,'aaaaa');

    ?

    已創(chuàng)建 1 行。

    ?

    SQL> select * from t1;

    ?

    ?????? TID TNAME

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

    ???????? 1 aaaaa

    ?

    SQL> commit;

    ?

    提交完成。

    ?

    SQL> select * from t1;

    ?

    ?????? TID TNAME

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

    ???????? 1 aaaaa

    ?

    SQL> rollback;

    ?

    回退已完成。

    ?

    SQL> select * from t1;

    ?

    ?????? TID TNAME

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

    ???????? 1 aaaaa

    ?

    SQL>

    rollback案例:

    SQL> select * from t1;

    ?

    ?????? TID TNAME

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

    ???????? 1 aaaaa

    ?

    SQL> insert into t1(tid,tname) values(2,'bbb');

    ?

    已創(chuàng)建 1 行。

    ?

    SQL> select * from t1;

    ?

    ?????? TID TNAME

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

    ???????? 1 aaaaa

    ???????? 2 bbb

    ?

    SQL> rollback;

    ?

    回退已完成。

    ?

    SQL> select * from t1;

    ?????? TID TNAME

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

    ???????? 1 aaaaa

    SQL>

    ?

  • Oracle中的事務(wù)生命周期

  • 1.事務(wù)的起始標(biāo)志 DML語言(oracle默認(rèn)事務(wù)是打開的)

    2.事務(wù)的結(jié)束標(biāo)志

    提交

    顯式提交commit

    隱式提交

    執(zhí)行DDL語句

    Eg:執(zhí)行create table的時候還有1個隱式的功能

    提交之前沒有提交的DML語句(insert update

    正常退出

    回滾

    顯式rollback

    隱式:掉電/宕機(jī)/非正常退出,這幾者等價于系統(tǒng)出錯了

    4 保存點(diǎn)savepoint

    案例:

    SQL> select * from t1;

    ?

    ?????? TID TNAME

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

    ???????? 1 aaaaa

    ?

    SQL> insert into t1(tid,tname) values(2,'bbb');

    ?

    已創(chuàng)建 1 行。

    ?

    SQL> select * from t1;

    ?

    ?????? TID TNAME

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

    ???????? 1 aaaaa

    ???????? 2 bbb

    ?

    SQL> rollback;

    ?

    回退已完成。

    ?

    SQL> select * from t1;

    ?

    ?????? TID TNAME

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

    ???????? 1 aaaaa

    ?

    SQL>

    總結(jié):最后一條insert語句沒有插入進(jìn)去,回滾到了指定的保存點(diǎn)

  • 數(shù)據(jù)庫的隔離級別

  • 對于同時運(yùn)行的多個事務(wù),當(dāng)這些事務(wù)訪問數(shù)據(jù)庫中相同的數(shù)據(jù)時,如果沒有采取必要的隔離機(jī)制,就會導(dǎo)致各種并發(fā)問題

    臟讀:對于兩個事務(wù)T1,T2T1讀取了已經(jīng)被T2更新但還沒有被提交的字段之后,若T2回滾。T1讀取的內(nèi)容就是臨時且無效的。

    不可重復(fù)讀:對于兩個事物T1,T2T1讀取了一個字段,然后T2更新了該字段,之后T1再次讀取同一個字段,值就不同了。

    幻讀:對于兩個事務(wù)T1T2T1從一個表中讀取了一個字段,然后T2在該表中插入了一些新的行。之后,如果T1再次讀取同一個表,就會多出幾行。

    數(shù)據(jù)庫事務(wù)的隔離性:數(shù)據(jù)庫系統(tǒng)必須具有隔離并發(fā)運(yùn)行多個事務(wù)的能力,使它們不會相互影響,避免各種并發(fā)問題。

    一個事務(wù)與其他事務(wù)隔離的程度稱為隔離級別. 數(shù)據(jù)庫規(guī)定了多種事務(wù)隔離級別, 不同隔離級別對應(yīng)不同的干擾程度, 隔離級別越高, 數(shù)據(jù)一致性就越好, 但并發(fā)性越弱

    數(shù)據(jù)庫提供4中事務(wù)隔離級別:sql99

    Oracle 支持的 2 種事務(wù)隔離級別:READ COMMITED, SERIALIZABLE. Oracle 默認(rèn)的事務(wù)隔離級別為: READ COMMITED

    另外還支持一種隔離級別:read-only

    Mysql 支持 4 中事務(wù)隔離級別. Mysql 默認(rèn)的事務(wù)隔離級別為: REPEATABLE READ

    ?

    總結(jié)

    以上是生活随笔為你收集整理的4.事务提交过程,事务基本概念,Oracle中的事务生命周期,保存点savepoint,数据库的隔离级别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。