我已經閱讀了Django事務並將在我的項目中使用它,但這裏有幾個我想知道的問題。其實我想在註冊時使用交易,我在註冊時在2-3個位置插入,所以我希望如果任何查詢失敗,則不應該執行插入。所以根據Django文檔,我想我需要使用commit_on_success
類型的事務。但我想知道的是這些交易依賴於數據庫或它是Django的所有內部?我是否需要更改數據庫存儲引擎?如果我將不得不在不同的存儲引擎上使用它,甚至在未來的不同數據庫中使用它,如SQL中的一個表和nosql中的一個?或者這沒關係?瞭解Django事務的工作
另外,如果我將使用它喜歡:
from django.db import transaction
def function1():
#code here without transaction
@commit_on_success
def function2():
#code here with transaction
然後函數2將工作與承諾,如果所有方法的代碼一定會成功,但將與FUNCTION1發生什麼作爲之前的交易是進口的?什麼類型的交易將被應用於function1?我想function1沒有任何交易,但行爲正常,因爲它在其他模型的表單代碼中工作,所以我該怎麼辦?
所以我的問題是,如果沒有事務處理,但每個事物都有正常的行爲,但有一個事務處理方法?它會通過使用裝飾器和其他方法將正常行爲或我需要做別的?並且這些交易也依賴於數據庫和數據庫存儲引擎如innodb這些交易只是django內部交易?
請告訴,以便我可以有清楚的概念,在此先感謝。
是的Marat我需要改變一個表innodb和它的工作 – Hafiz