我有一个我需要修改的Postgres数据库。它在我的localhost中。我正在尝试使用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();
});
结果显示返回&postgreadmin'作为用户。这有点令人困惑。我的数据库用户应该包含像' peter',' mary'这样的用户。查询似乎在Postgres'上运行。配置,而不是数据库表本身。
我尝试了其他表格,错误是"没有商家找到的关系'。我不知道如何连接到表。我的表格位于模式调用公共'之下。所以我的问题是,我是否需要指定in pg的配置来连接到架构' public'?
答案 0 :(得分:1)
select user
是一个返回当前数据库用户的函数,因此select * from user
将返回数据库用户(并且SELECT * FROM "User"
也会返回)。
如果你 创建一个具有该名称的表,则需要使用双引号:
"User"
请注意,带引号的标识符区分大小写。 "user"
的名称与"USER"
或"Merchant"
不同。检查数据库中是否有正确的拼写。 wget -O /dev/null --progress=bar:force www.stackoverflow.com 2>> log_browse.txt
tail -n 1 log_browse.txt
我强烈建议您将表重命名为非保留关键字,并且不会与任何内部函数名冲突。
有关详细信息,请参阅手册:
https://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS