Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如果postgresql中不存在,如何删除_Node.js_Postgresql_Postman - Fatal编程技术网

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;
    
    但是要小心使用空值
    详情:

    3个明显的错误:

  • 查询中中前面的列名(
    类别
    ?)丢失,使得语句语法非法

  • 您两次使用相同的参数
    $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));})
    这里它正在删除所有值。