客戶a要給客戶b轉一筆錢,這個在資料庫中需要進行兩步: 1.客戶a減錢 2.客戶b加錢
如果在第一步結束後,伺服器出現異常,停下了,第二步沒有進行,如果資料庫使用了事務操作,真的出現異常的時候,前面的操作會進行回滾。
簡單的說就是:要麼全部執行成功,要麼乙個都不執行
這個回滾的操作就叫做資料庫的原子性操作。
這是在mysql資料庫中,我們在django的orm中如何進行呢?
2.通過orm建立生成表
from django.db import
models
class
userinfo(models.model):
username = models.charfield("
使用者",max_length=32)
balance = models.charfield("
餘額",max_length=32)
注意啊:踩過的坑,涉及金融計算,涉及小數啊,要求特別精確的,我們用字串儲存。
如果是金融計算的話,我們用乙個decimal來進行計算。
3.我們給資料庫加兩條資料,用來模擬兩個使用者之間的轉賬
出現錯誤<%s>
執行成功
")
django中ORM的事務操作
在django的orm中,有兩種使用事務的方式 注意,mysql需要是innodb引擎 from django.db import transaction transaction.atomic def viewfunc request 下面的 在乙個事務中執行,一但出現異常,整個函式中所有的資料庫操...
django中如何開啟事務
事務 acid 原子性不可分割的最小單位 一致性跟原子性是相輔相成 隔離性事務之間互相不干擾 永續性事務一旦確認永久生效 事務的回滾 rollback 事務的確認 commit 目前你只需要掌握django中如何簡單的開啟事務 事務 from django.db import transaction...
Django之ORM中事務和鎖
orm 事務 資料庫事務 簡稱 事務 是資料庫管理系統執行過程中的乙個邏輯單位,由乙個有限的資料庫操作序列構成。並非任意的對資料庫的操作序列都是資料庫事務。資料庫事務擁有以下四個特性,習慣上被稱之為acid特性。1.原子性 atomicity 事務作為乙個整體被執行,包含在其中的對資料庫的操作要麼全...