如何在PostgreSQL中通过引用table A为table B添加外键,通过引用table B为table A添加外键?

How to add a foreign key for table B by referring of table A and foreign key for table A by referring table B in PostgreSQL?

我需要为两个表彼此添加一个外键。这可以做到吗?

例如:

CREATE SCHEMA IF NOT EXISTS schema1;

CREATE TABLE schema1.tableA
    (
        id serial NOT NULL,
        tableB_id integer,
        PRIMARY KEY (id),
        FOREIGN KEY (tableB_id) REFERENCES schema1.tableB (id)
    );

    CREATE TABLE schema1.tableB
    (
        id serial NOT NULL,
        tableA_id integer,
        PRIMARY KEY (id),
        FOREIGN KEY (tableA_id) REFERENCES schema1.tableA(id)
    );

以上查询导致错误!

ERROR: relation "schema1.tableb" does not exist SQL state: 42P01

这个可以做吗,或者有什么更好的解决办法吗? 我正在使用 PostgreSQL 版本 10.5 和 pgAdmin 3.6

创建两个表后添加外键:

CREATE SCHEMA IF NOT EXISTS schema1;
CREATE TABLE schema1.tableA
(
    id serial NOT NULL,
    tableB_id integer,
    PRIMARY KEY (id)
);

CREATE TABLE schema1.tableB
(
    id serial NOT NULL,
    tableA_id integer,
    PRIMARY KEY (id)
);

ALTER TABLE schema1.tablea
  add FOREIGN KEY (tableB_id) REFERENCES schema1.tableB (id);

ALTER TABLE schema1.tableb
  add foreign key (tableA_id) REFERENCES schema1.tableA(id);