微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SQLite3 表仅包含 1 行

如何解决SQLite3 表仅包含 1 行

所以,我有 2 个表,我已经根据文档添加了这些表,但是每当我尝试向它们添加一行时都会发生一些奇怪的事情。数据写入 .db 文件,但每当我查询它时,它只返回第一行。我仍然可以更新并正常读取这些行,但是我写入它们的任何数据都不会更新表。只写了第一行。

我查看了我所有的语句,我知道它们是对的,因为第一个语句将其添加到表格中,但第二个语句没有。根据文档,我正在使用 npm 中 sqlite3 的基本配置,所以我不知道我做错了什么。

我没有任何错误,预期的结果是我可以添加尽可能多的行

db.serialize(function() {
 db.run("CREATE TABLE users (userId int,user varchar(255))");
 db.run("CREATE TABLE notes (userId int,uuid varchar(50),name varchar(255),noteData varchar(1024),file BLOB(21845))")
});

db.run("INSERT INTO users (userId,user) VALUES (0,'User')")
db.run(`INSERT INTO notes (userId,uuid,name,noteData) VALUES (0,'uuid','First Note','This will be readable.')`)

//This statement will add the data to the file,but the query won't read it.
db.run(`INSERT INTO notes (userId,noteData) VALUES (1,'uuid2','This will not show.')`)
db.get("SELECT * FROM notes",[],(err,row)=>{console.log(row)})

此外,这不是异步问题。在示例中,我添加了最后一行,但它实际上不在我的代码中。几分钟后我请求它,我可以确认文本在数据库中,它只是决定不读取它。

解决方法

您必须使用 db.all()db.get() 只返回第一行。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。