我有一个用户表,我在pgadmin4中看到它,但由于某种原因,当我使用psql并尝试运行list users时,我得到以下错误:关系“users”不存在。
4szc88ey1#
您需要将表名放在引号中。并且,它区分大小写:
SELECT * FROM "Users";
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>;
kq4fsx7k3#
在自动测试的情况下,在迁移后设置延迟可以完成以下工作:
setTimeout(() => { // queries }, 1000);
可能是数据库完成的延迟。在我的例子中,自动化测试是多线程的。
gfttwv5a4#
我已经在数据库中添加了新的Schema(并删除了我的用户表),因此我的请求
SELECT "role" FROM "user" ...
但现在应该是用模式名
SELECT "role" FROM "schemaName"."user" ...
4条答案
按热度按时间4szc88ey1#
您需要将表名放在引号中。并且,它区分大小写:
4dc9hkyq2#
如果psql用户没有方案级别权限,则会发生此情况。此错误消息可能会引起误解。
要解决此问题,请尝试以admin用户身份使用psql进行连接,然后运行:
1.
kq4fsx7k3#
在自动测试的情况下,在迁移后设置延迟可以完成以下工作:
可能是数据库完成的延迟。
在我的例子中,自动化测试是多线程的。
gfttwv5a4#
我已经在数据库中添加了新的Schema(并删除了我的用户表),因此我的请求
但现在应该是用模式名