关系“users”不存在,PostgreSQL

46scxncf  于 2022-11-04  发布在  PostgreSQL
关注(0)|答案(4)|浏览(356)

我有一个用户表,我在pgadmin4中看到它,但由于某种原因,当我使用psql并尝试运行list users时,我得到以下错误:
关系“users”不存在。

4szc88ey

4szc88ey1#

您需要将表名放在引号中。并且,它区分大小写:

SELECT * FROM "Users";
4dc9hkyq

4dc9hkyq2#

如果psql用户没有方案级别权限,则会发生此情况。此错误消息可能会引起误解。
要解决此问题,请尝试以admin用户身份使用psql进行连接,然后运行:
1.

GRANT USAGE ON SCHEMA public TO <non-admin-user>;
GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO <non-admin-user>;
kq4fsx7k

kq4fsx7k3#

在自动测试的情况下,在迁移后设置延迟可以完成以下工作:

setTimeout(() => {
   // queries
}, 1000);

可能是数据库完成的延迟。
在我的例子中,自动化测试是多线程的。

gfttwv5a

gfttwv5a4#

我已经在数据库中添加了新的Schema(并删除了我的用户表),因此我的请求

SELECT "role" FROM "user" ...

但现在应该是用模式名

SELECT "role" FROM "schemaName"."user" ...

相关问题