ndb_lock.result
来自「视频监控网络部分的协议ddns,的模块的实现代码,请大家大胆指正.」· RESULT 代码 · 共 190 行
RESULT
190 行
DROP TABLE IF EXISTS t1,t2,t3,t4,t5,t6,t7;create table t1 (x integer not null primary key, y varchar(32)) engine = ndb;insert into t1 values (1,'one'), (2,'two');select * from t1 order by x;x y1 one2 twoselect * from t1 order by x;x y1 one2 twostart transaction;insert into t1 values (3,'three');select * from t1 order by x;x y1 one2 two3 threestart transaction;select * from t1 order by x;x y1 one2 twocommit;select * from t1 order by x;x y1 one2 two3 threecommit;drop table t1;create table t1 (pk integer not null primary key, u int not null, o int not null, unique(u), key(o)) engine = ndb;insert into t1 values (1,1,1), (2,2,2), (3,3,3), (4,4,4), (5,5,5);lock tables t1 write;delete from t1 where pk = 1;unlock tables;select * from t1 order by pk;pk u o2 2 23 3 34 4 45 5 5insert into t1 values (1,1,1);lock tables t1 write;delete from t1 where u = 1;unlock tables;select * from t1 order by pk;pk u o2 2 23 3 34 4 45 5 5insert into t1 values (1,1,1);lock tables t1 write;delete from t1 where o = 1;unlock tables;select * from t1 order by pk;pk u o2 2 23 3 34 4 45 5 5insert into t1 values (1,1,1);drop table t1;create table t1 (x integer not null primary key, y varchar(32), z integer, key(z)) engine = ndb;insert into t1 values (1,'one',1);begin;select * from t1 where x = 1 for update;x y z1 one 1begin;select * from t1 where x = 1 for update;ERROR HY000: Lock wait timeout exceeded; try restarting transactionrollback;rollback;insert into t1 values (2,'two',2),(3,"three",3);begin;select * from t1 where x = 1 for update;x y z1 one 1select * from t1 where x = 1 for update;ERROR HY000: Lock wait timeout exceeded; try restarting transactionselect * from t1 where x = 2 for update;x y z2 two 2rollback;commit;begin;select * from t1 where y = 'one' or y = 'three' for update;x y z# # ## # #begin;select * from t1 where x = 2 for update;x y z2 two 2select * from t1 where x = 1 for update;ERROR HY000: Lock wait timeout exceeded; try restarting transactionrollback;commit;begin;select * from t1 where y = 'one' or y = 'three' order by x for update;x y z1 one 13 three 3begin;select * from t1 where x = 2 for update;x y z2 two 2select * from t1 where x = 1 for update;ERROR HY000: Lock wait timeout exceeded; try restarting transactionrollback;commit;begin;select * from t1 where z > 1 and z < 3 for update;x y z2 two 2begin;select * from t1 where x = 1 for update;x y z1 one 1select * from t1 where x = 2 for update;Got one of the listed errorsrollback;commit;begin;select * from t1 where x = 1 lock in share mode;x y z1 one 1begin;select * from t1 where x = 1 lock in share mode;x y z1 one 1select * from t1 where x = 2 for update;x y z2 two 2select * from t1 where x = 1 for update;ERROR HY000: Lock wait timeout exceeded; try restarting transactionrollback;commit;begin;select * from t1 where y = 'one' or y = 'three' lock in share mode;x y z# # ## # #begin;select * from t1 where y = 'one' lock in share mode;x y z1 one 1select * from t1 where x = 2 for update;x y z2 two 2select * from t1 where x = 1 for update;ERROR HY000: Lock wait timeout exceeded; try restarting transactionrollback;commit;begin;select * from t1 where y = 'one' or y = 'three' order by x lock in share mode;x y z1 one 13 three 3begin;select * from t1 where y = 'one' lock in share mode;x y z1 one 1select * from t1 where x = 2 for update;x y z2 two 2select * from t1 where x = 1 for update;ERROR HY000: Lock wait timeout exceeded; try restarting transactionrollback;commit;begin;select * from t1 where z > 1 and z < 3 lock in share mode;x y z2 two 2begin;select * from t1 where z = 1 lock in share mode;x y z1 one 1select * from t1 where x = 1 for update;x y z1 one 1select * from t1 where x = 2 for update;ERROR HY000: Lock wait timeout exceeded; try restarting transactionrollback;commit;drop table t1;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?