【问题标题】:Reference on Foreign Table Postgres 9.5关于外部表 Postgres 9.5 的参考
【发布时间】:2017-12-30 06:25:28
【问题描述】:

我正在使用 oracle_fdw 从 postgres 9.5.3 连接到 Oracle 数据库。

已在 postgres db 上创建服务器和用户映射:

   CREATE FOREIGN SERVER foo FOREIGN DATA WRAPPER oracle_fdw OPTIONS (connection info..);
   GRANT USAGE ON FOREIGN SERVER foo TO my_user;
   CREATE USER MAPPING FOR my_user SERVER foo OPTIONS (user, password..);

然后创建了外部表:

   CREATE FOREIGN TABLE FT_ORACLE(
   my_id integer,
   description character varying(40)) SERVER foo OPTIONS (schema, table);

我试图引用的表:

   CREATE TABLE T_LOCALE(
   id bigint NOT NULL,
   oracle_id integer,
   description character varying(40),
   CONSTRAINT t_locale_pkey PRIMARY KEY(id));

尝试添加约束:

  ALTER TABLE T_LOCALE
  ADD CONSTRAINT fk_t_locale_oracle_id FOREIGN KEY (oracle_id)
  REFERENCES ft_oracle (id) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION;

结果:

   ERROR:  referenced relation "ft_oracle" is not a table.

问题:您不能在外部表上引用,对吗?因为 Oracle 不会关心是否有其他数据库引用了它的表,而只是编辑/删除它的条目。

【问题讨论】:

    标签: database oracle postgresql oracle-fdw


    【解决方案1】:

    正确,您不能对外部表进行外键约束。

    原因是 PostgreSQL 没有办法强制约束的正确性,所以没什么用。

    【讨论】:

    • 感谢您的确认,劳伦兹!
    猜你喜欢
    • 2022-01-24
    • 1970-01-01
    • 2016-10-01
    • 1970-01-01
    • 2013-01-09
    • 1970-01-01
    • 1970-01-01
    • 2013-07-21
    • 1970-01-01
    相关资源
    最近更新 更多