Node.js 如果postgresql中不存在,如何删除
Node.js 如果postgresql中不存在,如何删除,node.js,postgresql,postman,Node.js,Postgresql,Postman,for(请求主体类别中的变量i){ db.query(“从指南类别中删除,其中不在($1)中,且指南id=$1”,[req.body.categories[i],req.params.id],函数(错误,数据){ if(err)console.log(err); console.log('updated'); }) }3个明显的错误: 查询中中前面的列名(类别?)丢失,使得语句语法非法 您两次使用相同的参数$1。第二个可能是$2 I
for(请求主体类别中的变量i){
db.query(“从指南类别中删除,其中不在($1)中,且指南id=$1”,[req.body.categories[i],req.params.id],函数(错误,数据){
if(err)console.log(err);
console.log('updated');
})
}
3个明显的错误:
类别
?)丢失,使得语句语法非法$1
。第二个可能是$2
IN()
构造需要值列表或子查询,而不是数组。传递数组时,请改用ALL()
DELETE FROM guide_categories
WHERE category <> ALL($1)
AND guide_id = $2;
从指南类别中删除
其中类别全部($1)
指南id=$2;
但是要小心使用空值详情:
类别
?)丢失,使得语句语法非法$1
。第二个可能是$2
IN()
构造需要值列表或子查询,而不是数组。传递数组时,请改用ALL()
DELETE FROM guide_categories
WHERE category <> ALL($1)
AND guide_id = $2;
从指南类别中删除
其中类别全部($1)
指南id=$2;
但是要小心使用空值详情:
- 不要在类别上使用循环。这样做,您将删除所有内容(第一次删除除类别3之外的所有内容,因此您只剩下类别3,然后删除除类别2之外的所有内容,因此您将删除所有内容)
- 您在
之前缺少一个列名,不在
中
- 不要使用
中,而是使用不在
,并传递整个数组全部
- 修复第二个
$1
db.query("DELETE FROM guide_categories WHERE category_id <> ALL ($1) AND guide_id = $2",
[
req.body.categories,
req.params._id
],
function(err, data)
{
if (err) console.log(err);
console.log('updated');
})
db.query(“从指南类别中删除,其中类别id全部($1),指南id=$2”,
[
请求主体类别,
请求参数\u id
],
功能(错误、数据)
{
if(err)console.log(err);
console.log('updated');
})
您的代码中有几个问题:
- 不要在类别上使用循环。这样做,您将删除所有内容(第一次删除除类别3之外的所有内容,因此您只剩下类别3,然后删除除类别2之外的所有内容,因此您将删除所有内容)
- 您在
之前缺少一个列名,不在
中
- 不要使用
中,而是使用不在
,并传递整个数组全部
- 修复第二个
$1
db.query("DELETE FROM guide_categories WHERE category_id <> ALL ($1) AND guide_id = $2",
[
req.body.categories,
req.params._id
],
function(err, data)
{
if (err) console.log(err);
console.log('updated');
})
db.query(“从指南类别中删除,其中类别id全部($1),指南id=$2”,
[
请求主体类别,
请求参数\u id
],
功能(错误、数据)
{
if(err)console.log(err);
console.log('updated');
})
这个“”符号代表什么?不相等,如在基本SQL中。它不会删除字符串值吗?它只会删除guide_categories
表中的数据,据我所知,您提供的信息很少,这是一个联接表,它应该只包含类别和指南的ID。db.query('DELETE FROM position WHERE position ALL($1)AND user_id=$2 RETURNING*',[data.positionDetails.position,companyuser.rows[0]。\u id],函数(err,data1){if(err)return callback(new Error(err));})
这里它正在删除所有值。这是什么符号表示??不相等,如在基本SQL中。它不会删除字符串值吗?它只会删除guide_categories
表中的数据,据我所知,您提供的信息很少,这是一个连接表,它应该只包含类别和指南的ID。db.query('DELETE FROM position WHERE position ALL($1)和user_id=$2 RETURNING*',[data.positionDetails.position,companyuser.rows[0]。\u id],函数(err,data1){if(err)return callback(new Error(err));})
这里它正在删除所有值。