
建立MyDb数据库,为什么查看数据库是输出的却是mydb,是什么原因呢?有什么办法解决吗?
sql 对于大小写不敏感, 大写小写都一样,如有帮助给个采纳谢谢
数据库名 的大小写是 一样的,只有 数据库的字段是可以设置 大小写敏感的
- 这篇博客: 手写简化版数据库--MYDB中的 多线程恢复策略 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
多线程下情况怎么样?
- 第一种:

在系统崩溃时,T2仍然是活跃状态,那么当数据库重启,执行恢复例程时,会撤销T2,他对数据库的影响会被消除。
但是由于T1 读取 了 T2 更新的值,既然 T2 被撤销了,那么 T1 也应当被撤销,这种情况,就是级联回滚,但是,T1已经commit,所有commit的事务,已经持久化,这就造成了矛盾
如何避免以上问题?
规定1: 正在进行的事务,不会读取其他任何未提交的事务产生的数据
- 第二种情况: 假设 x 的初值 是 0

在系统崩溃时,T1 仍然是活跃状态。那么当数据库重新启动,执行恢复例程时,会对 T1 进行撤销,对 T2 进行重做,但是,无论撤销和重做的先后顺序如何,x 最后的结果,要么是 0,要么是 2,这都是错误的
如何避免以上问题?
规定2: 正在进行的事务,不会修改其他任何未提交的事务修改或产生的数据
并发情况下日志恢复?
在不会发生规定1或者规定2的基础(VM层会满足)上:
重做所有崩溃时已完成(committed或aborted)的事务
撤销所有崩溃时未完成(active)的事务