我正在尝试使用其他表中的主键外键创建一系列表,但是我总是收到错误消息

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。

09-27 20:45