W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
在 SQL 規(guī)范中,每一個(gè) SQL 查詢會(huì)啟動(dòng)事務(wù),除非一個(gè)事務(wù)已經(jīng)處于活動(dòng)狀態(tài)。然后必須顯式地提交或回滾此事務(wù)。
這對(duì)開(kāi)發(fā)者來(lái)說(shuō)一直很頭疼。為了減輕這個(gè)問(wèn)題,大部分?jǐn)?shù)據(jù)庫(kù)提供了自動(dòng)提交模式。當(dāng)打開(kāi)了自動(dòng)提交,并且沒(méi)有事務(wù)活動(dòng)時(shí),每一個(gè) SQL 查詢將被包含在自己的事務(wù)中。換句話說(shuō),每一個(gè)這種查詢不僅會(huì)啟動(dòng)一個(gè)事務(wù),而且事務(wù)也會(huì)被自動(dòng)提交或回滾,這取決于查詢是否成功。
PEP 249 (Python 數(shù)據(jù)庫(kù)接口規(guī)范 v2.0)要求自動(dòng)提交在初始時(shí)是關(guān)閉的。Django 會(huì)覆蓋這個(gè)默認(rèn)值并開(kāi)啟自動(dòng)提交。
你可以通過(guò)設(shè)置 ?AUTOCOMMIT
?為 ?False
?來(lái)對(duì)數(shù)據(jù)庫(kù)完全禁用 Django 事務(wù)管理。如果你這么做了,Django 將不會(huì)啟動(dòng)自動(dòng)提交,而且不會(huì)執(zhí)行任何提交。你將獲得底層數(shù)據(jù)庫(kù)的常規(guī)行為。
這要求你顯式地提交每一個(gè)事務(wù),即使它們通過(guò) Django 或第三方庫(kù)啟動(dòng)。因此,這適用于當(dāng)你想運(yùn)行事務(wù)控制中間件或做一些非常奇怪的事情的情形。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: