【发布时间】:2021-07-27 08:39:43
【问题描述】:
我正在尝试在满足特定条件时更新表中的值,但没有任何更新:
if (req.headers['user-agent'].includes('HeadlessChrome') && (end - start <= 500)) {
db.run("UPDATE tab SET var = '1234' WHERE var = '5678'", (err) => {
if(err) {
return console.log(err.message);
}
})
}
var query = "SELECT * FROM tab"
db.all(query, (error, rows) => {
...
db.all(query..) 似乎只返回 UPDATE 之前的值,这让我认为 UPDATE 没有按应有的方式工作。我已经验证输入了 IF 语句。有什么想法吗?
【问题讨论】:
-
尝试在更新回调中运行查找查询,数据库操作是异步的
-
我该怎么做?我不确定回调是如何工作的。
-
您使用的是哪个数据库?例如,Oracle 需要
COMMIT TRANSACTION来保留任何更改。您是否验证了表tab实际上包含带有var = '5678'的行?您是否直接在数据库的命令行或应用程序之外的其他环境中尝试过? -
是的,我调用了一个 db.all(query),它从该表中选择每个值并将其打印出来,5678 就在那里。我正在使用 sqlite3。
-
值得注意的是,这是虚拟数据 - 真实数据类似于 test{1234_5678},我想用 test{5678_1234} 替换它。
标签: javascript sql node.js database express