我创建了3个表,其中包含以下查询:
S表:

CREATE TABLE S (
    SN INT,
    SNAME CHAR(10),
    RATING FLOAT,
    CITY CHAR(10),
    PRIMARY KEY (SN)
)

J表:
CREATE TABLE J (
    JN INT,
    JNAME CHAR(10),
    CITY CHAR(10),
    PRIMARY KEY (JN)
)

P表:
CREATE TABLE P (
    PN INT,
    PNAME CHAR(10),
    COLOR CHAR(10),
    CITY CHAR(10),
    WEIGHT FLOAT,
    PRIMARY KEY (PN)
)

他们成功地创造了没有任何错误。
问题是,当我尝试运行以下查询时,我会遇到一个奇怪的错误:
 CREATE TABLE SPJ (
    QTY INT,
    FOREIGN KEY (SN) REFERENCES S(SN),
    FOREIGN KEY (PN) REFERENCES P(PN),
    FOREIGN KEY (JN) REFERENCES J(JN),
    PRIMARY KEY (SN, PN, JN)
)

错误:在键中命名的列“SN”不存在行6:主键(SN,PN,JN)

最佳答案

您需要创建列和外键。外键不会创建列,它们实际上只是约束。

CREATE TABLE SPJ (
    QTY INT,
    SN  INT,
    PN  INT,
    JN  INT,
    FOREIGN KEY (SN) REFERENCES S(SN),
    FOREIGN KEY (PN) REFERENCES P(PN),
    FOREIGN KEY (JN) REFERENCES J(JN),
    PRIMARY KEY (SN, PN, JN)
)

关于sql - key 中命名的列“sn”不存在第6行:主 key (SN,PN,JN),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53580049/

10-13 04:31