pg-promise 创建列错误

pg-promise creating column error

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

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

error: syntax error at or near "'haha'"

'haha' 是 name 里面的值,谁知道哪里出了问题?

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

任何 schema/table/column 名称都称为 SQL 名称,必须使用 "".

进行转义

pg-promise that means you must use its SQL Names 支持范围内,带有 :name: 或 ~ 修饰符。

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

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

此外,如果您确定您只使用简单的名称,即没有空格,没有大写字母,那么您可以直接使用该名称,不转义,这意味着使用 Raw Text,通过修饰符 :raw^。但一般来说,不推荐这样做,即转义名称更安全 ;)