我正在尝试使用其他表中的主键外键创建一系列表,但是我总是收到错误消息Table Creation Failed: Key column 'PACId' doesn't exist in table:
这是出现的第一种情况:
CREATE TABLE PlantAreaCodes(
PACId INT NOT NULL AUTO_INCREMENT,
AreaCode INT,
AreaName CHAR(32),
Comments TEXT,
PRIMARY KEY (PACId)
);
CREATE TABLE MajorEquipment(
MEId INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY (MEId),
FOREIGN KEY (PACId)
REFERENCES PlantAreaCodes(PACId)
);
它与外键的语法有关吗,还是因为PACId仍然为空且不能为空?
最佳答案
并非PACId
为空。您尚未在MajorEquipment
中声明它。
尝试对第二张表使用此定义:
CREATE TABLE MajorEquipment(
MEId INT NOT NULL AUTO_INCREMENT,
PACId INT, -- Added this column
PRIMARY KEY (MEId),
FOREIGN KEY (PACId)
REFERENCES PlantAreaCodes(PACId)
);
Here是一个SQL Fiddle。