Rumah > Artikel > pangkalan data > Tamat masa menunggu kunci melebihi; cuba mulakan semula transaksi - Cara menyelesaikan ralat MySQL: kunci tamat masa tunggu, cuba mulakan semula transaksi
Tajuk: Cara menyelesaikan ralat MySQL: Kunci masa tunggu tunggu, cuba mulakan semula transaksi, perlukan contoh kod khusus
Teks:
MySQL ialah sistem pengurusan pangkalan data hubungan yang biasa digunakan dan digunakan secara meluas dalam pelbagai jenis pangkalan data apl. Walau bagaimanapun, apabila menggunakan MySQL, kita mungkin menghadapi pelbagai ralat dan pengecualian. Salah satu ralat biasa ialah "Tamat masa menunggu kunci melebihi; cuba mulakan semula transaksi". Artikel ini menerangkan cara menyelesaikan masalah ini dan menyediakan contoh kod khusus.
MySQL menyokong berbilang tahap pengasingan transaksi, seperti Read Uncommitted, Read Committed, Repeable Read dan Serializable. Tahap pengasingan transaksi yang berbeza mengendalikan persaingan kunci secara berbeza. Menetapkan tahap pengasingan transaksi ke tahap yang lebih rendah, seperti membaca tanpa komitmen, boleh mengurangkan masa menunggu kunci.
Dalam MySQL, tamat masa tunggu kunci lalai ialah 50 saat. Jika anda berada dalam persekitaran konkurensi tinggi dan sesetengah operasi mengambil masa yang lama untuk diselesaikan, anda boleh mengelakkan ralat "Tamat masa menunggu kunci melebihi" dengan menetapkan tamat masa menunggu kunci. Tamat masa menunggu kunci boleh ditetapkan kepada 100 saat menggunakan pernyataan SQL berikut:
SET innodb_lock_wait_timeout = 100;
Contoh Kod
Berikut ialah contoh kod yang menunjukkan cara mengendalikan ralat "Tamat masa menunggu kunci melebihi" dalam program Java:
try { // 建立数据库连接 Connection connection = DriverManager.getConnection(url, username, password); // 开启事务 connection.setAutoCommit(false); // 执行数据库操作 // ... // 提交事务 connection.commit(); } catch (SQLException e) { if (e.getErrorCode() == 1205) { // 锁等待超时错误码为1205 // 尝试重新启动事务 // ... } else { e.printStackTrace(); } }
Atas ialah kandungan terperinci Tamat masa menunggu kunci melebihi; cuba mulakan semula transaksi - Cara menyelesaikan ralat MySQL: kunci tamat masa tunggu, cuba mulakan semula transaksi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!