squirrelとtransactionの別々の使い方は分かりましたが、併用する方法が分かりません。いつロールバックまたはコミットする必要がありますか? 私の試みは正しいでしょうか?そうでない場合、どこで間違ったのでしょうか...
リーリー私が理解しているところによると、postgresql でクエリを実行した後にロールバックまたはコミットしようとしています
あなたの努力は素晴らしいです。ただし、この場合 ....runwith(db.repo.getdatabase())
は正しくありません。トランザクション接続 tx
を渡す必要があるためです。クエリのデータベース接続としてトランザクション オブジェクトを使用するように squirrel に指示します。
トランザクション接続の代わりにデータベース接続を使用する場合、squirrel クエリはトランザクションの一部になりません。各クエリは個別に実行され、ただちにデータベースに送信されます。
defer
ステートメントを使用して rollback
ステートメントと commit
ステートメントを更新することもできます。これにより、関数が終了する前にトランザクションが適切に処理され、完了することが保証されます。 。
これは更新されたコードです..
リーリー ### お役に立てれば。こちらも参照
以上がトランザクションとリスを使用した Golang postgresql クエリの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。