首页 > 其他分享 >bustub使用简例

bustub使用简例

时间:2024-09-14 15:29:18浏览次数:11  
标签:txn begin set bustub 简例 t1 使用 where select

要使用官方的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;

使用快照隔离级别的事务

  1. 首先创建一个表,创建一个索引,然后创建事务并插入(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);
  1. 创建表,插入值后,一个事务尝试把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

相关文章

  • PyQt5 使用 QFrame 绘制聊天(三角)气泡,并显示文字
    PyQt5使用QFrame绘制聊天(三角)气泡,并显示文字在PyQt5中,当需要想得到一个自定义的聊天气泡时,可以使用QPainter进行自定义绘制代码如下使用QPainter进行自定义绘制#!/usr/bin/envpython3#-*-coding:UTF-8-*-"""@File:test_QFrame.py@Author:......
  • PbootCMS编辑器无法上传图片:后端配置项没有正常加载,上传插件不能正常使用!
    在PBootCMS中遇到编辑器无法上传图片的问题时,通常是因为后端配置项没有正常加载导致的。以下是具体的解决步骤:1.检查时区配置文件位置文件路径:\core\extend\ueditor\php\controller.php行号:大约第4行修改内容打开文件:打开 \core\extend\ueditor\php\controller......
  • 使用@Validated校验List集合中数据失效
    我们可以写一个集合实现list,代码如下,在controller类上面不用加@Validated注解,在controller使用自定义ValidableList集合,对list进行封装,就可以对scheduleDtoList做参数校验处理。@Api(tags="xxxx管理")@RestController@RequestMapping("aaa/indicatorDeviceCategoryDe......
  • 如何使用【Python】快速制作可视化报表
    数据可视化能力已经越来越成为各岗位的基础技能。领英的数据报告显示,数据可视化技能在2017年中国最热门技能中排名第一。就数据分析而言,可视化探索几乎是你正式进行数据分析的第一步,通过SQL拿到数据之后,我们需要使用可视化方法探索和发现数据中的模式规律。数据分析界有一......
  • 《鸿蒙/Harmony | 开发日志》DevEco Studio 使用NewUI
    DevEco也是基于Jetbrain的IntelliJIDEA社区版开发。用习惯了Idea和AndroidStudio的新UI界面。看着旧版的界面风格太难了。官方没有提供改NewUI的方式,不过还是有其它的方法可以开启。只是有些功能可能没有那么好用,需要注意一下。不过在我用下来,目前的问题都能解决。开启N......
  • 一篇文章教会使用MySQL数据库
    1.MySQL的命令1.1操作数据库1.1.1mysql服务的启动和停止netstopmysqlnetstartmysql1.1.2增加新用户grant权限on数据库.*to用户名@登录主机identifiedby“密码”权限:select,insert,update,delete数据库:数据名后面的.的星星可以指定表登录主机:......
  • 无数据备份和无归档文件时,使用bbed修改数据文件头的SCN,强制打开数据库的方法
    在数据库运维中经常会遇到某个数据文件的SCN与其他文件的SCN不一致(如offline后或者异常断电),如果归档日志被删除了,导致datafile不能recover,数据库不能打开情况,这时候我们需要借助bbed修改datafileheader的scn与其他datafile的headerscn一致,然后recoverdatafile。一、问题产生......
  • 使用脚本部署openstack平台
    一、案例分析1.部署架构一台控制节点和一台计算节点组成简单架构OpenStack平台,控制节点安装MySQL、Keystone、Glance、Nova、Neutron、Dashboard等服务,主要作为认证、镜像管理节点,以及提供Nova和Neutron服务的管理节点。提供Dashboard界面服务。计算节点主要安装nova-comput......
  • 一个小技巧,巧妙的使用 sync.Pool 减少 GC 压力,提升性能!
    Go语言的sync.Pool本质是用来保存和复用临时对象,以减少内存分配,降低GC压力,比如需要使用一个对象,就去Pool里面拿,如果拿不到就分配一份,这比起不停生成新的对象,用完了再等待GC回收要高效的多。sync.Pool是临时对象池,存储的是临时对象,不可以用它来存储socket长连接和数据库......
  • 在xml文件中 大于|小于|等于 的使用
    字符名称sql符号转义字符大于号>>小于号<<不等于<><>大于等于号>=>=小于等于号<=<=......