33 lines
802 B
Plaintext
33 lines
802 B
Plaintext
create table t1 (
|
|
pk int not null primary key,
|
|
col1 int not null,
|
|
col2 int not null,
|
|
key(col1)
|
|
) engine=xengine;
|
|
create table ten(a int primary key);
|
|
insert into ten values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
|
|
create table one_k(a int primary key);
|
|
insert into one_k select A.a + B.a* 10 + C.a * 100 from ten A, ten B, ten C;
|
|
insert into t1 select a,a,a from one_k;
|
|
# Start the transaction, get the snapshot
|
|
begin;
|
|
select * from t1 where col1<10;
|
|
pk col1 col2
|
|
0 0 0
|
|
1 1 1
|
|
2 2 2
|
|
3 3 3
|
|
4 4 4
|
|
5 5 5
|
|
6 6 6
|
|
7 7 7
|
|
8 8 8
|
|
9 9 9
|
|
# Connect with another connection and make a conflicting change
|
|
begin;
|
|
update t1 set col2=123456 where pk=0;
|
|
commit;
|
|
update t1 set col2=col2+1 where col1 < 10 limit 5;
|
|
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
|
|
drop table t1, ten, one_k;
|