ホームページ  >  記事  >  バックエンド開発  >  トランザクションとリスを使用した Golang postgresql クエリ

トランザクションとリスを使用した Golang postgresql クエリ

WBOY
WBOY転載
2024-02-06 09:54:08986ブラウズ

使用事务和 squirrel 进行 Golang postgresql 查询

質問内容

squirrelとtransactionの別々の使い方は分かりましたが、併用する方法が分かりません。いつロールバックまたはコミットする必要がありますか? 私の試みは正しいでしょうか?そうでない場合、どこで間違ったのでしょうか...

リーリー

私が理解しているところによると、postgresql でクエリを実行した後にロールバックまたはコミットしようとしています


正解


あなたの努力は素晴らしいです。ただし、この場合 ....runwith(db.repo.getdatabase()) は正しくありません。トランザクション接続 tx を渡す必要があるためです。クエリのデータベース接続としてトランザクション オブジェクトを使用するように squirrel に指示します。

トランザクション接続の代わりにデータベース接続を使用する場合、squirrel クエリはトランザクションの一部になりません。各クエリは個別に実行され、ただちにデータベースに送信されます。

defer ステートメントを使用して rollback ステートメントと commit ステートメントを更新することもできます。これにより、関数が終了する前にトランザクションが適切に処理され、完了することが保証されます。 。

これは更新されたコードです..

リーリー ### お役に立てれば。

こちらも参照

  • database/sql tx - コミットまたはロールバックの検出 李>
  • 遅延を使用する

以上がトランザクションとリスを使用した Golang postgresql クエリの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。