Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Tempo limite de espera de bloqueio excedido; tente reiniciar a transação usando JDBC


Modifique seu código e reordene as execuções da seguinte maneira. Deve funcionar bem:
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();

O problema é que a instrução insert executada anteriormente ainda não foi confirmada e mantém o bloqueio na tabela quando você está tentando executar uma nova instrução delete criando uma situação de deadlock dentro do banco de dados.