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

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

DB Browser for SQLite (一款 sqlite 可视化工具)操作 sqlite 数据库 ,一个名叫 testDB 的数据库(位置在C:\sqlite\testDB.db ),在里面建了一个表,名叫 queryn

然后,在命令行中运行 sqlite
C:\sqlite>sqlite3

c 复制代码
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

c 复制代码
 main: "" r/w

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

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

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

c 复制代码
main: C:\sqlite\testDB r/w

可以看到,当前使用的是 testDB 数据库,

然后,奇怪的事情发生了,

使用命令查看 testDB 数据库都有什么文件:
sqlite> .tables

c 复制代码
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

c 复制代码
sqlite>

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

所以记得,.open 数据库的时候,一定要把数据库的扩展名加上,
testDB.db

sqlite> .open testDB.db

c 复制代码
sqlite> .open testDB.db
sqlite> .databases
main: C:\sqlite\testDB.db r/w
sqlite> .tables
queryn

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

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

对于初学者来说,敲错代码是出现奇怪问题的最常见的原因。

April 21th 2024 Sunday

相关推荐
东莞市云毅网络有限公司4 天前
PDF 表格抽取的三条技术路线对比:规则、库解析与版面识别
python·sqlite·自动化运维·geo·数据监测
躺不平的理查德4 天前
SQL Lite 备忘录1
sqlite
躺不平的理查德6 天前
SQL Lite 备忘录2
sqlite
东莞市云毅网络有限公司7 天前
用标准库做网页正文抽取:从 HTML 到结构化字段的轻量实现
python·sqlite·自动化运维·geo·数据监测
小静AI工程实验室8 天前
Python 爬虫翻页为何重复、漏数据?SQLite 复现 OFFSET、复合游标与快照的 8 项检查
爬虫·python·sqlite
刘天远8 天前
Agent最小权限实现:策略表、临时令牌与撤权回归
java·jvm·人工智能·sqlite
cpolar技术支持9 天前
AI Agent 跑半小时就忘目标?用检查点与任务账本做可恢复长任务,cpolar 分享只读时间线
python·sqlite·cpolar·ai agent·任务恢复
东莞市云毅网络有限公司10 天前
用 SQLite FTS5 给企业知识库做问答检索原型:中文二元切分与 BM25 排序
python·sqlite·自动化运维·geo·数据监测
XiaoZhenHua9811 天前
C# WinForms + 西门子S7 + SQLite + EPPlus生产数据采集系统架构设计
系统架构·sqlite·c#
张人玉12 天前
基于 C# / .NET 8 + Windows Forms + SQLite 的桌面银行业务演示系统——华夏示范银行管理系统
windows·sqlite·c#·.net