为什么在sqlite中出现“未指定表”错误?

问题描述 投票:0回答:1

我现在有点困惑。

我正在使用Rpi上的Node-Red将以下查询传递到本地网络上的sqlite数据库中>

UPDATE Users SET firstname='John', lastname='Doe' WHERE user_id='U50CC485';

一旦传入,数据库将返回此错误:

错误:SQLITE_ERROR:未指定表

其他所有类型的SQL查询都可以正常工作,如果将表更改为不存在的表,则会得到以下信息:

错误:SQLITE_ERROR:没有这样的表:示例

我还尝试过在函数外部单独传递命令,它运行良好。不知道从这里去哪里。

这里是用于生成查询的完整代码:

let body = msg.temp; // { firstname: "John", lastname: "Doe" }

if(Object.entries(body).length === 0){
    msg.payload = {ok:false,message:"No arguments to update"};
    return msg;
}

let args = [];
let data = [];

if('firstname' in body){
    args.push('firstname')
    data.push(body.firstname)
}
if('lastname' in body){
    args.push('lastname')
    data.push(body.lastname)
}
if('email' in body){
    args.push('email')
    data.push(body.email)
}

if(!args.length){
    msg.payload = {ok:false,message:"Invalid arguments"};
    return msg;
}

let updates = [];
for(var arg = 0; arg < args.length; arg++){
    updates.push(args[arg]+"='"+data[arg]+"'");
}

let query = "UPDATE [Users] SET " + updates.join(', ') + " WHERE user_id='" + body.user + "';";
msg.topic = query;

return msg;

msg是输入,payload属性用于数据,topic属性用于查询。对于数据库,topic是唯一拉出的属性。

我现在有点困惑。我正在使用Rpi上的Node-Red将以下查询传递到本地网络上的sqlite数据库中UPDATE Users SET firstname ='John',lastname ='Doe'WHERE user_id ='...

sql database sqlite node-red
1个回答
0
投票

我已经检查了sqlite的source codeno tables specified错误与SELECT语句解析器有关。

© www.soinside.com 2019 - 2024. All rights reserved.