错误代码1215.无法添加外键约束

时间:2016-08-13 23:03:58

标签: mysql database

在这里为学校创建一个新的数据库,并且很难理解这里的错误。

例如,我想创建此表(自动SQL输出):

-- -----------------------------------------------------
-- Table `jobsearch`.`Employer`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `jobsearch`.`Employer` 
(
`EmployerID` SMALLINT(5) NOT NULL AUTO_INCREMENT,
`IndustryID` SMALLINT(5) NOT NULL,
`Address` VARCHAR(45) NOT NULL,
`City` VARCHAR(45) NOT NULL, 
`State` CHAR(2) NOT NULL,
`Zip` VARCHAR(5) NOT NULL,
`Phone` VARCHAR(10) NOT NULL,

PRIMARY KEY (`EmployerID`, `IndustryID`),
INDEX `fk_Employer_Industry1_idx` (`IndustryID` ASC),

CONSTRAINT `fk_Employer_Industry1`
    FOREIGN KEY (`IndustryID`) REFERENCES `job search`.`Industry` (`IndustryID`)

    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;

我有这个外表应该引用的表(这个表创建时没有任何问题):

CREATE TABLE IF NOT EXISTS `jobsearch`.`Industry` 
(
`IndustryID` INT NOT NULL AUTO_INCREMENT,
`IndustryName` VARCHAR(45) NOT NULL,
`Region` VARCHAR(45) NOT NULL,

PRIMARY KEY (`IndustryID`))
ENGINE = InnoDB;

1 个答案:

答案 0 :(得分:1)

引用列的数据类型必须与完全匹配引用列的数据类型。您已将`Industry.IndustryID定义为

`IndustryID` INT ...

Employer.IndustryID

`IndustryID` SMALLINT(5) ...

Employer.IndustryID更改为INT,您应该闪亮。