Có rất nhiều bài đăng cho điều này bằng cách sử dụng hai phiên.
https://dba.stackexchange.com/questions/309/code -to-simulate-deadlock
http://www.xaprb.com/blog/2006/08/08/how-to-deliberily-cause-a-deadlock-in-mysql/
Phương pháp được sao chép từ bài viết thứ hai ở trên
Đầu tiên, hãy chọn một tên bảng không sử dụng. Tôi sẽ sử dụng test.innodb_deadlock_maker. Dưới đây là các câu lệnh bạn cần thực hiện:
create table test.innodb_deadlock_maker(a int primary key) engine=innodb;
insert into test.innodb_deadlock_maker(a) values(0), (1);
Bây giờ bảng và dữ liệu của nó đã được thiết lập. Tiếp theo, thực hiện các thao tác sau trên hai kết nối khác nhau:
- kết nối 0
set transaction isolation level serializable;
start transaction;
select * from test.innodb_deadlock_maker where a = 0;
update test.innodb_deadlock_maker set a = 0 where a <> 0;
- kết nối 1
set transaction isolation level serializable;
start transaction;
select * from test.innodb_deadlock_maker where a = 1;
update test.innodb_deadlock_maker set a = 1 where a <> 1;