Я получаю сообщение об ошибке ниже, когда пытаюсь создать таблицу с парой внешних ключей. Это происходит гладко, если я только включаю внешний ключ userID, но жалуется, когда я пытаюсь также ввести другой внешний ключ. В чем дело?
ERROR 1005: Can't create table 'ps5_lwilkins.PhoneNumber' (errno: 150)
SQL Statement:
CREATE TABLE `ps5_lwilkins`.`PhoneNumber` (
`userID` CHAR(25) NOT NULL ,
`resumeID` CHAR(30) NOT NULL ,
`number` CHAR(45) NOT NULL ,
PRIMARY KEY (`userID`, `resumeID`, `number`) ,
INDEX `user_phoneNumber_fk1` (`userID` ASC) ,
INDEX `resume_phoneNumber_fk3` (`resumeID` ASC) ,
CONSTRAINT `user_phoneNumber_fk1`
FOREIGN KEY (`userID` )
REFERENCES `ps5_lwilkins`.`User` (`userID` )
ON DELETE CASCADE
ON UPDATE NO ACTION,
CONSTRAINT `resume_phoneNumber_fk3`
FOREIGN KEY (`resumeID` )
REFERENCES `ps5_lwilkins`.`Resume` (`resumeID` )
ON DELETE CASCADE
ON UPDATE NO ACTION)
ENGINE = InnoDB
Вот схема для пользователя:
User(userid: CHAR(25), pass: VARCHAR(25)
) userid
- это ПК
Вот схема для Резюме:
Resume(userID: CHAR(25), resumeID: CHAR(30)
несколько других, не важных атрибутов). PK это (userID, resumeID)
.
Есть идеи? нужно больше информации?
Глядя на другие проблемы, похожие на эту, я думаю, что это как-то неправильно сформированный FK в resumeID ... но я не вижу где!
Кстати, я попробовал несколько разных имен для ограничения FK.
РЕДАКТИРОВАТЬ: У меня нет привилегии для выполнения SHOW ENGINE INNODB STATUS