我在postgres中创建了一个名为user
的表,其中包含id, name, family
列(id为自动增量)。我要插入postgres的查询如下:
var config = {
user: 'username',
database: 'databaseName',
password: 'password',
host: 'localhost',
port: 5432,
max: 10,
idleTimeoutMillis: 30000
};
const pool = new postgre.Pool(config);
let query = "INSERT INTO user(name, family) VALUES ('name', 'family')";
pool.query(query, [], function (err, result) {
if (err) {
return console.error("error running query", err);
}
console.log("done!");
});
但是,我收到了以下错误:
用户附近的语法错误
另外,我尝试过不同的方法来发送请求,如下所示:
const connectionString = "http://localhost:5432/databaseName?username=username&password=password";
const client = new postgre.Client(connectionString);
client.connect();
const query = client.query("INSERT INTO user(id, name, family) VALUES ('name', 'family')");
query.then(x => { console.log("done!")});
query.catch(x => { console.log(x)});
但是我收到了以下错误:
角色\"用户名\"不存在
此外,错误正文中的UserName
(服务器名称)与数据库的username
不同。
我检查了所有可能的谬误,例如用户名和密码的正确性。
因此,问题是什么问题?
答案 0 :(得分:0)
所有这些问题都来自表名。如this post中所述,user
的名称是postgres中的保留名称。因此,如果更改user
表的名称(例如users
),则会传递这些错误。
答案 1 :(得分:0)
user
是PostgreSQL中的保留字,指的是当前登录的用户。因此,为了能够使用名称为user
的表格,名称必须始终位于双引号内 - "user"
。