Sql Postgres:使用外键将行插入表中
我有一个带有外键Sql Postgres:使用外键将行插入表中,sql,postgresql,Sql,Postgresql,我有一个带有外键type的表,它链接到表wp\u 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 "i
type
的表,它链接到表wp\u 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执行。
此外,我不明白此查询试图做什么,它显然与检查外键约束有关,但我不明白如何进行。来自postgresql文档:
如果指定了ONLY,则只扫描该表。如果未指定ONLY,则扫描该表及其所有子表(如果有)
正如您所提到的,错误与检查外键有关。当仅指定时,postgres无法检查它们,这可能会导致错误。两点:
EXPLAIN
可以告诉您它在做什么,但是错误表明问题出在架构权限上,而不是查询在做什么
尝试:
在查询中只使用
的原因是什么?我明白了。我不明白的是权限问题或如何找出问题所在。这两个表都由尝试执行插入的用户拥有,并且该用户拥有架构中所有表和序列的全部信息。
GRANT USAGE ON SCHEMA base TO postgres;