创建失败:表中不存在键列'name':

时间:2014-02-25 03:00:38

标签: mysql sql foreign-keys primary-key notnull

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

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仍然是空的,而不是?

2 个答案:

答案 0 :(得分:2)

并非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小提琴。

答案 1 :(得分:0)

试试这个

CREATE TABLE MajorEquipment(
  MEId INT NOT NULL AUTO_INCREMENT,
  PRIMARY KEY (MEId),
  PACId INT 
  REFERENCES PlantAreaCodes(PACId)
)