locktable.sql

来自「derby database source code.good for you.」· SQL 代码 · 共 98 行

SQL
98
字号
-- 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 + =
减小字号Ctrl + -
显示快捷键?