【问题标题】:“Error 42P01: relation does not exist” (non public schema in PostgreSQL)“错误 42P01:关系不存在”(PostgreSQL 中的非公共模式)
【发布时间】:2017-11-13 17:26:35
【问题描述】:

我想创建一个外键,但出现错误 42P01:relation solicitantes 不存在。

我必须架构:公共和实验室。

我的表叫做procedencias。我想为 solicitantes 表创建一个外键。两者都属于实验室模式。甚至目标表格字段的自动完成功能也可以找到表格。

我明白了:

  • 我可以为公共模式的任何表创建外键。
  • 我无法为实验室模式的任何表创建外键。 创建外键时出错。

我正在使用 Jetbrains DataGrip 软件。

这是名为“solicitantes”的表的 DDL:

CREATE TABLE laboratorio.solicitantes
(
  id_solicitante serial NOT NULL,
  nombre_solicitante character varying(100) NOT NULL,
  CONSTRAINT solicitantes_pkey PRIMARY KEY (id_solicitante)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE laboratorio.solicitantes
  OWNER TO roby;

CREATE UNIQUE INDEX solicitantes_id_solicitante_uindex
  ON laboratorio.solicitantes
  USING btree
  (id_solicitante);

CREATE UNIQUE INDEX solicitantes_nombre_solicitante_uindex
  ON laboratorio.solicitantes
  USING btree
  (nombre_solicitante COLLATE pg_catalog."default");

我认为我必须指定架构名称,但我不知道在 DataGrip 中的何处执行。

【问题讨论】:

    标签: postgresql foreign-keys database-schema datagrip


    【解决方案1】:

    我在从修改表窗口向自定义模式中的表中添加外键时遇到了同样的问题。将架构添加到“目标表”字段也不起作用。相反,我选择了“在编辑器中打开”而不是“在数据库中执行”,并将架构添加到生成语句中的表名中,它运行良好。

    【讨论】:

      【解决方案2】:

      您是否尝试将显式架构添加到表 solicitantes 中?

      【讨论】:

      • 我试过了,但没有用。目标表:laboratorio.solitantes
      • 这个错误是西班牙语,这意味着数据库给你这个错误,而不是工具。请提供 Solicitantes 表的 DDL。
      猜你喜欢
      • 2014-12-25
      • 2011-02-13
      • 2020-09-19
      • 2019-06-10
      • 2019-04-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多