2016-08-13 26 views
0

ここで学校のために新しいデータベースを作成し、ここで間違ったことを理解するのが難しいです。エラーコード1215.外部キー制約を追加できません

は、例えば、私はこのテーブルを作成する(自動化されたSQL出力):

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; 

-- ----------------------------------------------------- 
-- 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; 

私は外国人が(このテーブルはすべての問題なしに作成された)を参照する必要があることを、このテーブルを持っています

答えて

1

参照する列のデータ型は、参照先の列のデータ型と一致する必要があります。正確にはです。あなたが定義した `INT

`IndustryID` SMALLINT(5) ... 

変更Employer.IndustryIDとして

`IndustryID` INT ... 

Employer.IndustryIDとしてIndustry.IndustryID、あなたがピカピカにする必要があります。

+0

ありがとうございました!私はここでは多くの場合ポップアップしませんが、私はまだあなたに感謝したいと思います。 –

関連する問題