“users”关系不存在。PostgreSQL

6
我有一个用户表,我在pgadmin4中看到了它,但是由于某些原因,当我使用psql并尝试运行列出用户时,会出现以下错误:

关系“users”不存在。

5个回答

11
如果psql用户没有模式级别的权限,则会发生这种情况。这个错误信息可能会让人产生误导。
要解决这个问题,请尝试使用具有管理员权限的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>;

11
你需要用引号括起表名。 而且,它是区分大小写的
SELECT * FROM "Users";

1
如果有大写字母,请添加引号 - mercury
谢谢兄弟,你救了我!为你点赞! - Bruno Lebtag

1

在这里提到的任何解决方案对我都没有起作用,直到我写下了这个查询。

SELECT * FROM public."Users";

这对我有效。

0

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

SELECT "role" FROM "user" ...

但现在应该有模式名称

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

-4
在自动化测试的情况下,在迁移之后设置延迟即可完成工作:
setTimeout(() => {
   // queries
}, 1000);

可能是数据库完成的延迟。
在我的情况下,自动化测试是多线程的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接