使用Node.js更新postgreql数据库

时间:2018-03-07 11:10:24

标签: node.js postgresql sql-update parameterized-query

我尝试更新postgresql上的表,以便我创建两个数组

    var name_ = []; 
    var id_ = [];

然后我创建了一个forEach循环,其中MyRow是包含不同数据的查询

    MyRow.rows.forEach(function(row){ 
      name_.push(row.name);
      id_.push(row.id);                      
    });            
    var updateAccount = 'UPDATE myTable SET myRow =$1 '+
    'where id = $2'   
    client.query(updateAccount,[name_.toString(),id_.toString()],false).then(function(err,result){                      
        if (err) {
            console.log(err.stack);        
          } else {
            console.log(name_)
          }
    });

然后我遇到错误错误:缺少FROM-clause条目表" myTable"

2 个答案:

答案 0 :(得分:0)

我不确定错误是否相关,但提到的shema在哪里?还可以在模板字符串上使用反引号,oneLineconst

const updateAccount = oneLine`
   UPDATE myTable
   SET myRow = $1
   WHERE shema.id = $2  -- where is `shema` defined?
`;

答案 1 :(得分:-1)

我的猜测是你应该用单引号括起你的值。

var updateAccount = "UPDATE myTable SET myRow = '$1' "+
"where shema.id = '$2'"

在您的示例中,您的值被解释为列名,因此PostgreSQL会要求您指定包含这些值的表。