在使用 sqlite 时遇到的奇怪问题的正解

server/2024/10/21 5:31:49/

在使用 sqlite 时遇到的奇怪问题,
DB Browser for SQLite (一款 sqlite 可视化工具)操作 sqlite 数据库 ,一个名叫 testDB 的数据库(位置在C:\sqlite\testDB.db),在里面建了一个表,名叫 queryn
然后,在命令行中运行 sqlite
C:\sqlite>sqlite3

SQLite version 3.45.3 2024-04-15 13:34:05 (UTF-16 console I/O)
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.

显示一下当前的数据库文件都有啥:

sqlite> .databases

 main: "" r/w

当前没有数据库是活动的:

用命令行打开 刚才用 DB Browser for SQLite 操作的那个 testDB 的数据库(位置在C:\sqlite\testDB.db):
sqlite> .open testDB

再用命令显示当前使用的是哪个数据库:
sqlite> .databases

main: C:\sqlite\testDB r/w

可以看到,当前使用的是 testDB数据库,
然后,奇怪的事情发生了,
使用命令查看 testDB 数据库都有什么文件:
sqlite> .tables

sqlite>

结果,啥都没查到,
可是用 DB Browser for SQLite 明明在 testDB数据库里创建了表 queryn,而且在表里已经添加了好几条数据了,也保存了,
怎么用命令就查不到这个表 queryn呢?
最重要的是明明操作的是同一个数据库 testDB
位置在 C:\sqlite\testDB.db
怎么就查不到呢 ?!!!

去**C:\sqlite**里仔细一看,发现除了正常的 testDB数据库文件以外,还多了一个同名的 testDB文件,这家伙是哪里来的??

在这里插入图片描述
于是,将 刚才的命令行回显复制粘贴到记事本里,仔细的一行一行的找,终于找到了问题所在,
在这里插入图片描述
没错,
.open 它啥都能打开,数据库 testDB.db 它能打开,
文件 testDB它也能打开,
但是当你 .open 一个文件 testDB 的时候,当然就在这个文件中是找不到任何表的 也就是
sqlite> .tables

sqlite>

这也就是为啥 会多出一个 和 testDB.db 同名的文件的原因了,

在这里插入图片描述
所以记得,.open 数据库的时候,一定要把数据库的扩展名加上,
testDB.db

sqlite> .open testDB.db

sqlite> .open testDB.db
sqlite> .databases
main: C:\sqlite\testDB.db r/w
sqlite> .tables
queryn

再查询就有刚才建的表 queryn了,

所以,当学习和使用 sqlite 数据库出现了奇怪的问题时,不要急不要慌,仔细检查和比对一下自己敲击的命令和教程操作手册有什么细微上难以察觉的不同,就会找到问题根源所在。
对于初学者来说,敲错代码是出现奇怪问题的最常见的原因。

April 21th 2024 Sunday


http://www.ppmy.cn/server/7695.html

相关文章

【PyTorch】1-基础知识(张量、导数、CUDA)

PyTorch:1-基础知识 注:所有资料来源且归属于thorough-pytorch(https://datawhalechina.github.io/thorough-pytorch/),下文仅为学习记录 1.1:张量 神经网络核心包:autograd(自动微分) 张量…

Spring Cloud Feign面试题

Spring Cloud Feign面试题 1. Feign基础概念1.1 什么是Feign?1.2 Feign的主要用途是什么?1.3 Feign和OpenFeign有何区别?1.4 Feign和Ribbon以及RestTemplate的区别是什么? 2. Feign的使用和配置2.1 如何创建一个Feign客户端&#…

.css和.qss的区别

注:该内容由Kimi自动生成。 .css 和 .qss 文件都是用于定义样式表的,但它们用于不同的应用程序和上下文。以下是它们之间的主要区别: 适用的应用程序: .css(Cascading Style Sheets):广泛用于网…

通信原理(1)--信息的度量,通信系统的性能指标

通信原理(1)–信息的度量,通信系统的性能指标 1.1通信的基本概念 消息、信息与信号通信系统的组成模型数字通信的特点通信系统的分类通信的方式 1.1.1通信的发展 1.1.2消息、信息与信号 消息的定义 消息是通信系统要传输的对象,包含连续消息和离散…

Css切换不同窗口

代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><title>Title</title></head><style>/*label {*//* display: block;*//*}*/* {padding: 0;margin: 0;}body {height: 100vh;backgroun…

mysql-MVCC

MySQL-InnoDB-MVCC多版本并发控制 1.基本概念&#xff1a; MVCC&#xff1a;应对高并发事务, MVCC比单纯的加锁更高效; 多版本控制&#xff0c;是一种提高并发的技术&#xff0c;最早的数据库系统&#xff0c;只有读和读之间可以并发&#xff0c;读和写&#xff0c;写和读&am…

李宏毅2022机器学习/深度学习 个人笔记(2)

本系列用于推导、记录该系列视频中本人不熟悉、或认为有价值的知识点 本篇记录第一讲&#xff08;选修&#xff09;&#xff1a;神奇宝贝分类&#xff08;续&#xff09; 讲解如何用高斯概率分布假设来推导类似于逻辑斯蒂分布的表达式 如图&#xff0c;boundary变为直线&…

UML绘制

processon官网 https://www.processon.com/template_create 官方学习地址 https://plantuml.com/zh/class-diagram 在Android studio 中自动生成类图 https://blog.csdn.net/zyfzhangyafei/article/details/126636358 plantUML 在线编辑 https://www.plantuml.com/plantuml/um…