pg-promise创建列错误

时间:2017-10-04 05:15:24

标签: node.js postgresql pg-promise

var name = req.body.name;
db.any('alter table "houseList" add  $1 text', [name])

我尝试使用 nodejs 中的上述代码在 heroku 上向数据库主机添加新列,但我一直收到此错误:

  

错误:“'haha'”或附近的语法错误

'哈哈'是名字内部的价值,任何人都知道出了什么问题?

1 个答案:

答案 0 :(得分:1)

您正在使用无效的转义作为列名,作为常规字符串变量。

任何架构/表/列名称都称为SQL名称,必须使用""进行转义。

pg-promise内,这意味着您必须使用:name支持,~:或db.any('alter table "houseList" add $1:name text', [name]) 修饰符。

db.any('alter table "houseList" add  $1~ text', [name])

:raw

另外,如果您确定只使用简单名称,即没有空格,没有大写字母,那么您可以直接使用名称,未转义,这意味着使用SQL Names,通过修饰符{{1} }或^。但一般情况下,不推荐使用,即建议将名称转义为更安全;)