节点 Postgres (pg) 库找不到 table 的关系

Node Postgres (pg) library can't find relation of table

我有一个需要修改的 Postgres 数据库。它在我的本地主机中。我正在尝试为此使用 Node Postgres,但我从文档中遗漏了一些内容。

const client = new Client({
  user: 'postgreadmin',
  host: 'localhost',
  database: 'testdb',
  password: 'somepassword',
  port: 5433,
})

client.query('SELECT * FROM User', function(err, result) {
  console.log
  (result);
 client.end();
});

结果显示 return 'postgreadmin' 为用户。这有点令人困惑。我的数据库用户应该包含 'peter'、'mary' 等用户。查询似乎是 运行 在 Postgres 的配置上,而不是在数据库表本身上。

我尝试了其他表,但错误是“未找到相关商家”。我不确定如何连接到这些表。我的表在架构调用下 'public'。所以我的问题是我是否需要在 pg 的配置中指定连接到架构 'public'?

user 是 return 当前数据库用户的函数,因此 select user 将 return 数据库用户(并且 select * from user 也会).

如果您 did 使用该名称创建 table 您需要使用双引号:

SELECT * FROM "User"

请注意,带引号的标识符区分大小写。 "User""user""USER" 的名称不同。检查您的数据库的拼写是否正确。 "Merchant"

可能也是如此

我强烈建议您将 table 重命名为非保留关键字且不与任何内部函数名称冲突的名称。

更多详细信息,请参阅手册:
https://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS