Adakah konteks akan digunakan secara lalai dalam keseluruhan transaksi sql?

PHPz
Lepaskan: 2024-02-05 22:45:04
ke hadapan
745 orang telah melayarinya

Adakah konteks akan digunakan secara lalai dalam keseluruhan transaksi sql?

Kandungan soalan

Saya tertanya-tanya sama ada keseluruhan transaksi akan "mendengar" konteks di sini, adakah anda menggunakan konteks untuk memulakan transaksi?

tx, _ := db.BeginTx(ctx, &sql.TxOptions{Isolation: sql.LevelSerializable})
stmt, _ := tx.Prepare("SELECT id, timeout, lang FROM client WHERE id=?")
Salin selepas log masuk

Atau adakah anda menggunakan konteks secara eksplisit pada setiap pertanyaan?

tx, _ := db.BeginTx(ctx, &sql.TxOptions{Isolation: sql.LevelSerializable})
stmt, _ := tx.PrepareContext(ctx, "SELECT id, timeout, lang FROM client WHERE id=?")
Salin selepas log masuk


Jawapan betul


Tidak. Prepare dan kaedah bebas konteks lain, sila gunakan konteks.Latar Belakang.

Dari Tx.Sediakan dokumentasi...

Lihat kod sumber, ia hanya pembalut mudah.

func (tx *Tx) Prepare(query string) (*Stmt, error) {
    return tx.PrepareContext(context.Background(), query)
}
Salin selepas log masuk

Walaupun Tx menyimpan konteks daripada db.BeginTx, ini hanya digunakan untuk transaksi. Ia tidak akan menggunakannya untuk pertanyaan kerana konteks kongsi akan mengelirukan dan menyekat.

Atas ialah kandungan terperinci Adakah konteks akan digunakan secara lalai dalam keseluruhan transaksi sql?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:stackoverflow.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan