我有一个包含外键type
的表格,该表格链接到表格wp_types
。每当我尝试在该表中插入一行时,我都会收到错误:
ERROR: permission denied for schema base
LINE 1: SELECT 1 FROM ONLY "base"."wp_types" x WHERE "id" OPERATOR(p...
^
QUERY: SELECT 1 FROM ONLY "base"."wp_types" x WHERE "id" OPERATOR(pg_catalog.=) $1 FOR SHARE OF x
查询正在以postgres身份执行。 另外我不明白这个查询试图做什么,它显然与检查外键约束有关,但我不明白如何。
答案 0 :(得分:2)
来自postgresql docs:
如果指定了ONLY,则仅扫描该表。如果未指定ONLY,则扫描表及其所有后代表(如果有)。
正如您所提到的,错误与检查外键有关。当指定ONLY时,postgres无法检查它们并且可能会导致错误。
答案 1 :(得分:0)
两点:
您是否可以从postgres用户中删除超级用户权限?
基本架构的权限是什么?
现在要考虑的一件事是你不确定查询在做什么。一个简单的EXPLAIN
可以显示它正在做什么,但错误表明问题在于架构权限,而不在于查询正在做什么。
尝试:
GRANT USAGE ON SCHEMA base TO postgres;