Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wartezeit für Sperre überschritten; Versuchen Sie, die Transaktion mit JDBC neu zu starten

Ändern Sie Ihren Code und ordnen Sie die Ausführungen wie folgt neu. Es sollte gut funktionieren:

Statement statement = connection.createStatement();
statement.execute("insert into student values (3,'kamal')");
connection.commit();

Statement statement1 = connection1.createStatement();
statement1.execute("delete from student where student_id = 3");
connection1.commit();

Das Problem ist, dass die zuvor ausgeführte Insert-Anweisung noch nicht festgeschrieben ist und die Sperre für die Tabelle hält, wenn Sie versuchen, eine neue Delete-Anweisung auszuführen, wodurch eine Deadlock-Situation innerhalb der DB entsteht.