2017-05-04 1 views
1

私はドキュメントを読んでいて、トランザクションで一度だけコミットする必要があることを知りましたか?接続コミット機能Python

1つのトランザクションとしてカウントされるのか、または各関数がトランザクションとしてカウントされますか?

def main(): 
    conn=pyodbc.connect(sqlconnectionstring) # Assume this connects to the database 
    cursor = conn.cursor() 

    function1() 
    function2() 

    conn.commit() 

def function1(): 
    # does inserting here 

def function2(): 
    # does inserting here and calls function 3 
    function3() 

def function 3(): 
    # does more inserting here 
main() 

は十分conn.commit()はすべての機能ですべての挿入をコミットするか、私は、引数として「connの」変数を渡すと、各関数内でコミットしなければならないということですか?

ありがとうございます!

答えて

1

はい挿入と削除のようなものとしてすべてのトランザクションをコミットするのに十分なことは、関数内ですべて実行され、失敗すると古い行が見つかるまで実行されます。

ただし、1回コミットするとデータベースの状態が最新のものに変更されます

関連する問題