April 2022
Beginner to intermediate
464 pages
6h 44m
Japanese
リレーショナルデータベースを使ってアプリケーションを開発する上で、トランザクション制御は切っても切り離せないトピックです。 INSERT や UPDATE 、 DELETE といったDMLを使ってテーブルのレコードを操作する場合、トランザクションを使ってレコードを操作することになります。トランザクションは成功したか失敗したかのどちらかのみで終了します。データベースのオートコミットの設定にもよりますが、トランザクションの反映には明示的に Commit するか Rollback するか、いずれかの操作が必要になります 1 。
本項ではGoのアプリケーションにおけるトランザクション制御の方法を紹介します。 database/sql パッケージを用いて説明しますが、ORMなどの便利ライブラリを用いて開発する場合にも応用できます。たとえば sqlx も内部的には標準ライブラリの Begin() を使っていますし、 Gorm も BeginTx() を使っており、突き詰めれば database/sql にたどり着きます。直接的ないし間接的に *sql.Tx を取得するAPIがライブラリに用意されています。
トランザクションを扱うためのAPIは大きく4つあります。
API名 |
説明 |
|---|---|
|
トランザクションを開始するときに使う |
|
|
|
トランザクションをロールバックするときに使う |
|
トランザクションをコミットするときに使う |
トランザクションを開始するには ...
Read now
Unlock full access