Cara menggunakan tahap pengasingan transaksi MySQL untuk mengendalikan isu transaksi serentak
Apabila menggunakan MySQL untuk pemprosesan transaksi serentak, anda mungkin menghadapi beberapa masalah, seperti ketidakkonsistenan data, bacaan kotor, bacaan hantu, dsb. Untuk menyelesaikan masalah ini, MySQL menyediakan fungsi tahap pengasingan transaksi, yang boleh mengendalikan transaksi serentak dengan menetapkan tahap pengasingan yang berbeza.
Dalam artikel ini, kami akan memperkenalkan empat tahap pengasingan transaksi MySQL dan menunjukkan melalui kod sampel cara menggunakan tahap pengasingan ini untuk mengendalikan isu transaksi serentak.
Empat tahap pengasingan transaksi MySQL ialah: Baca Tidak Komited, Baca Komited, Bacaan Boleh Ulang dan Boleh Bersiri ).
Di bawah kami menggunakan kod sampel untuk menunjukkan cara menggunakan tahap pengasingan transaksi MySQL untuk mengendalikan isu transaksi serentak.
import pymysql # 连接数据库 conn = pymysql.connect(host='localhost', port=3306, user='root', password='密码', db='test') # 创建游标 cursor = conn.cursor() # 设置事务隔离级别为读已提交 cursor.execute('SET TRANSACTION ISOLATION LEVEL READ COMMITTED') # 开始事务 cursor.execute('START TRANSACTION') try: # 执行SQL语句 cursor.execute('UPDATE users SET balance = balance - 100 WHERE id = 1') cursor.execute('UPDATE users SET balance = balance + 100 WHERE id = 2') # 提交事务 conn.commit() except Exception as e: # 回滚事务 conn.rollback() print('事务执行失败:', str(e)) # 关闭游标和连接 cursor.close() conn.close()
Dalam kod contoh di atas, kami mula-mula mencipta sambungan MySQL dan menetapkan tahap pengasingan transaksi untuk membaca komited. Kemudian, kami memulakan transaksi dan melaksanakan dua penyata SQL, menolak 100 daripada baki pengguna 1 dan menambah 100 pada baki pengguna 2. Akhir sekali, keputusan pelaksanaan transaksi diproses dengan melakukan transaksi atau melancarkan transaksi.
Dalam artikel ini, kami memperkenalkan empat tahap pengasingan transaksi MySQL dan menunjukkan melalui kod sampel cara menggunakan tahap pengasingan ini untuk mengendalikan isu transaksi serentak. Saya harap artikel ini akan membantu anda memahami tahap pengasingan transaksi MySQL dan menangani isu transaksi serentak.
Atas ialah kandungan terperinci Cara menggunakan tahap pengasingan transaksi MySQL untuk menangani isu transaksi serentak. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!