Django處理MySQL事物的用法

2021-09-25 07:45:41 字數 416 閱讀 6787

資料庫事務

在儲存訂單資料中,涉及到多張表(orderinfo、ordergoods、sku)的資料修改,對這些資料的修改應該是乙個整體事務,即要麼一起成功,要麼一起失敗。

django中對於資料庫的事務,預設每執行一句資料庫操作,便會自動提交。我們需要在儲存訂單中自己控制資料庫事務的執行流程。

在django中可以通過django.db.transaction模組提供的atomic來定義乙個事務,atomic提供兩種用法

使用事物的時候要先導包

from django.db import transaction
兩種方式控制事務:為了保持資料一致性

mysql事物處理

原子性 組成事物處理的語句形成了乙個邏輯單元,不能只執行其中一部分。換句話說,事物是不可分割的最小單元。比如銀行轉賬過程中,必須同時從乙個賬戶減去轉賬金額,並加到另乙個賬戶中,只改變乙個賬戶是不合理的。一致性 在事物處理執行前後,mysql資料庫是一致的。也就是說,事物應該正確的轉換系統狀態。比如銀...

thinkphp oracle 事物處理

在使用sqlite大批量的插入資料時間,發現sqlite的響應資料相當慢,不管是php還是.net都是如此。後來在網上找到sqlite的插入機制,知道要在插入時使用事務,可以加速。sqlite的事務請使用begin和commit,以下以php為例 使用的框架是thinkphp 在tp中可以直接使用s...

PHP MYSQL 事物處理

php mysql 事物處理,首先資料庫設計時,必須能夠支援事務,所以在設計資料表時,選擇 innodb 作為資料庫的引擎,如果選擇資料庫的引擎不支援事務,例如 myisam 可以通過表鎖定的方式 以下是乙個事務實現的簡單的例子 資料庫名 test 資料表 person表,phone表 person...