你能帮我弄清楚吗
当我试图创建表dvdTitle时,我会出现以下错误
错误代码: 1005 无法创建表“netflixclone.dvdtitle”(errno: 150)
这是密码。不知道出了什么问题
CREATE TABLE IF NOT EXISTS `netflixclone`.`person` (
`personID` INT NOT NULL ,
`personFirstName` VARCHAR(50) NULL ,
`personLastName` VARCHAR(50) NULL ,
`actor` TINYINT(1) NULL ,
`producer` TINYINT(1) NULL ,
`director` TINYINT(1) NULL ,
PRIMARY KEY (`personID`) );
CREATE TABLE IF NOT EXISTS `netflixclone`.`dvdTitle` (
`dvdID` INT NOT NULL AUTO_INCREMENT ,
`dvdMPPARating` VARCHAR(45) NULL ,
`dvdProducer` INT NOT NULL,
`dvdDirector` INT NOT NULL,
PRIMARY KEY (`dvdID`) ,
CONSTRAINT `personID`
FOREIGN KEY (`dvdProducer` , `dvdDirector` )
REFERENCES `netflixclone`.`person` (`personID` , `personID` )
ON DELETE NO ACTION
ON UPDATE NO ACTION);
发布于 2014-07-18 01:27:38
尝试创建默认字符集为netflixclone.dvdtitle的“utf8”表。
CREATE TABLE IF NOT EXISTS `netflixclone`.`dvdTitle` (
`dvdID` INT NOT NULL AUTO_INCREMENT ,
`dvdMPPARating` VARCHAR(45) NULL ,
`dvdProducer` INT NOT NULL,
`dvdDirector` INT NOT NULL,
PRIMARY KEY (`dvdID`) ,
CONSTRAINT `personID`
FOREIGN KEY (`dvdProducer` , `dvdDirector` )
REFERENCES `netflixclone`.`person` (`personID` , `personID` )
ON DELETE NO ACTION
ON UPDATE NO ACTION) CHARSET=utf8;
发布于 2014-07-18 01:32:29
你的约束很奇怪。我想你需要两个约束。
CREATE TABLE IF NOT EXISTS `netflixclone`.`dvdTitle` (
`dvdID` INT NOT NULL AUTO_INCREMENT ,
`dvdMPPARating` VARCHAR(45) NULL ,
`dvdProducer` INT NOT NULL,
`dvdDirector` INT NOT NULL,
PRIMARY KEY (`dvdID`) ,
CONSTRAINT FOREIGN KEY (`dvdProducer`) REFERENCES `netflixclone`.`person`
ON DELETE NO ACTION ON UPDATE NO ACTION),
CONSTRAINT FOREIGN KEY (`dvdDirector`) REFERENCES `netflixclone`.`person`
ON DELETE NO ACTION ON UPDATE NO ACTION)
);
发布于 2014-07-18 01:32:45
FOREIGN KEY (dvdProducer) REFERENCES netflixclone.person (personID )
你可以试试这个
https://stackoverflow.com/questions/24815995
复制相似问题