Я получаю ошибку ниже, когда пытаюсь создать таблицу с несколькими внешними ключами. Это происходит гладко, если я включаю только внешний ключ userID, но жалуется, когда я пытаюсь получить там и другой внешний ключ. В чем дело?Почему я не могу создать свой стол? Почему это ограничение FK искажено?
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
является PK
Вот схема для Резюме:
Resume(userID: CHAR(25), resumeID: CHAR(30)
несколько другой доли не имеет важные атрибуты). PK - (userID, resumeID)
.
Любые идеи? нужно больше информации?
Рассматривая другие проблемы, подобные этому, я думаю, что это как-то неверный FK на resumeID ... но я не вижу, где!
Я пробовал несколько разных имен для ограничения привязки FK.
EDIT: У меня нет полномочий для выполнения SHOW ENGINE INNODB STATUS
Подождите! Кажется, я знаю, что это такое! Я сделал первичный ключ в разделе «Возобновить» (userID, resumeID), поэтому я не могу заставить внешний ключ зависать только от функции resumeID! * Вернемся назад * EDIT: ... dang, я попытался сделать внешний ключ (resumeID, userID), но получил ту же ошибку ... –
'У меня нет привилегий для выполнения SHOW ENGINE INNODB STATUS' Итак, выполните локальную установку, дайте себе это разрешение, воссоздайте проблему и выполните эту команду. –