2017-05-02 50 views
0

这似乎是一个相当简单的问题,但我一直无法弄清楚为什么会发生这种情况。简单外键错误地形成了外键约束(简单)

CREATE TABLE Instrument (
    name VARCHAR(50), 
    manufacturer VARCHAR(50), 
    CONSTRAINT Instrument_PK PRIMARY KEY (name), 
    CONSTRAINT Instrument_FK1 FOREIGN KEY (manufacturer) REFERENCES Companies(name) 
); 

CREATE TABLE Companies (
    name VARCHAR(50), 
    CONSTRAINT Companies_PK PRIMARY KEY (name), 
); 

返回错误:外键约束的格式不正确

+0

也许你需要先创建Companies表,然后在外键中引用它。 –

+2

从来没有听说过这样的postgres错误 –

回答

0

我的问题是,这两个表中引用的海誓山盟也不管里面秩序,人会引用该那张还不存在的表。

0

第一次创建Companies表,然后Instrument。你在这里也有错误的逗号:CONSTRAINT Companies_PK PRIMARY KEY (name),

试试这个:

CREATE TABLE Companies (
    name VARCHAR(50), 
    CONSTRAINT Companies_PK PRIMARY KEY (name) 
); 

CREATE TABLE Instrument (
    name VARCHAR(50), 
    manufacturer VARCHAR(50), 
    CONSTRAINT Instrument_PK PRIMARY KEY (name), 
    CONSTRAINT Instrument_FK1 FOREIGN KEY (manufacturer) REFERENCES Companies(name) 
);