Я новичок в MySQL.Я зашел в тупик.Пожалуйста, помогите объяснить.
Я создал таблицу:
create table test(id INT, value INT, PRIMARY KEY(id));
insert into test(id, value) values(0, 0);
insert into test(id, value) values(1, 1);
В транзакции 1:
begin;
select * from test where id=1 for update; //it holds record_lock(id=1)
В транзакции 2:
begin;
select * from test where id=1 for update; //it waits for record_lock(id=1)
Затем в транзакции 1:
select * from test where id>0 for update;
После этого оператора в транзакции 1 произошла ошибка транзакции 2:
ERROR 1213 (40001): Deadlock found when trying to get lock; try restarting transaction
Это последний обнаруженный тупик: