📄 locktable.sql
字号:
-- multiuser lock table testsdisconnect;connect 'jdbc:derby:wombat;user=U1' AS C1;autocommit off;connect 'jdbc:derby:wombat;user=U2' AS C2;autocommit off;set connection C1;-- create a table and populate itcreate table t1 (c1 int);insert into t1 values 1;commit;-- test TX vs TX lockslock table u1.t1 in exclusive mode;set connection C2;lock table u1.t1 in exclusive mode;set connection C1;-- verify that we still have the lockrun resource 'LockTableQuery.subsql';-- verify that we can insert into the tableinsert into t1 values 2;select * from t1;commit;-- test TX vs TS lockslock table t1 in exclusive mode;set connection C2;lock table u1.t1 in share mode;set connection C1;-- verify that we still have the lockrun resource 'LockTableQuery.subsql';-- verify that we can insert into the tableinsert into t1 values 3;select * from t1;commit;-- test TS vs TX lockslock table t1 in share mode;set connection C2;lock table u1.t1 in exclusive mode;set connection C1;-- verify that we still have the lockrun resource 'LockTableQuery.subsql';-- verify that we can insert into the tableinsert into t1 values 4;select * from t1;commit;-- test TS vs TS lockslock table t1 in share mode;set connection C2;lock table u1.t1 in share mode;set connection C1;-- verify that we still have the lockrun resource 'LockTableQuery.subsql';-- verify that we cannot insert into the tableinsert into t1 values 5;select * from t1;commit;set connection C2;commit;set connection C1;-- create another tablecreate table t2(c1 int);commit;-- verify that user getting error on lock table doesn't get rolled backlock table t1 in share mode;set connection C2;lock table u1.t2 in share mode;lock table u1.t1 in exclusive mode;set connection C1;-- verify that other user still has the lockrun resource 'LockTableQuery.subsql';commit;disconnect;set connection C2;disconnect;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -