我创建了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/