要使用官方的bustub-web-shell,就需要安装vercle,但是它用上了一些新的语法糖,比如:
if (typeof this._dest?.[method] === "function") {
(theme) => theme?.style)
store.hooksCleanup[index]?.();
所以我希望在一个早上的时间部署完,而短时间内我没法在我的ubuntu 20.04服务器上跑起来,所以我做了这个webshell。
仓库地址:
单个SQL
select * from test_simple_seq_2;
select * from __mock_t8;
select * from __mock_t8 where v4 > 4 and v4 < 7;
select * from __mock_t8 left join test_simple_seq_2 on v4 = col1;
由于SQL语句解析器的限制,暂不支持""
形式的字符串,所以只能用''
形式的字符串。
create table t1(a int, b varchar(4));
insert into t1 values (0, '0'), (1, '1'), (2, '234');
update t1 set a = 3 where b = '234';
select * from t1;
delete from t1 where a >= 2;
select * from t1;
使用快照隔离级别的事务
- 首先创建一个表,创建一个索引,然后创建事务并插入(0,0),(1,1),(2,234)。再用\txn -1,begin创建一个新事务,此时再插入值会失败。
create table t1(a int, b int);
create index t1i1 on t1(a);
begin;
insert into t1 values (0, 0), (1, 1), (2, 234);
\txn -1
begin;
select * from t1;
insert into t1 values (0, 0), (1, 1), (2, 234);
- 创建表,插入值后,一个事务尝试把0更改为1,另一个反之,结果会成功。
create table t1(a int);
insert into t1 values (0), (0), (1), (1);
begin;
update t1 set a = 1 where a = 0;
\txn -1
begin;
update t1 set a = 0 where a = 1;
commit;
select * from t1;
使用串行化隔离级别的事务
先设置隔离级别(默认是快照),然后执行上一段语句,结果会Abort。
假如第一个begin开启的是事务6,那么最后一个\txn 6,那么在切换回来之后再commit会Abort
set global_isolation_level=serializable;
create table t1(a int);
insert into t1 values (0), (0), (1), (1);
begin;
update t1 set a = 1 where a = 0;
\txn -1
begin;
update t1 set a = 0 where a = 1;
commit;
select * from t1;
\txn 6
commit;
标签:txn,begin,set,bustub,简例,t1,使用,where,select
From: https://www.cnblogs.com/Afeather/p/18413729