我的目标是建立一个子表,其主键和外键都是同一列,并引用主表的ID。
{company: {name: "Some Person"}}
但是这将创建一个包含两列的表映射:id [PK]和test_fk作为外键列。我该如何组合它们?
答案 0 :(得分:1)
您误解了foreign key
子句的工作原理。您可以在其中列出现有列的名称。列出列名称将创建任何新列。任何FK列必须已在"列部分"中定义。 create table
声明。
所以你的陈述根本不起作用,因为表test
没有名为fk_id
的列。您需要在那里提供已定义的列id
的名称:
CREATE TABLE test(
id integer NOT NULL,
name varchar,
CONSTRAINT test_pk PRIMARAY KEY (id),
CONSTRAINT test_fk FOREIGN KEY (id) --- <<< this was wrong
REFERENCES main_table (id) MATCH SIMPLE
)