@kENNY_x7

Ошибка: 150 «Foreign key constraint is incorrectly formed» при создании новой таблицы?

Пытаюсь выполнить запрос в mysql и получаю ошибку: #1005 - Невозможно создать таблицу (ошибка: 150 "Foreign key constraint is incorrectly formed")
Хотя вроде в запросе не вижу ошибки, подскажите в чем проблема

-- -----------------------------------------------------
-- Table `server_ads`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `server_ads` (
  `srv_id` INT UNSIGNED NOT NULL,
  `adv_id` INT UNSIGNED NOT NULL,
  PRIMARY KEY (`srv_id`, `adv_id`),
  INDEX `server_ads_adv_id_idx` (`adv_id` ASC),
  CONSTRAINT `server_ads_srv_id`
    FOREIGN KEY (`srv_id`)
    REFERENCES `servers` (`srv_id`)
    ON DELETE CASCADE
    ON UPDATE CASCADE,
  CONSTRAINT `server_ads_adv_id`
    FOREIGN KEY (`adv_id`)
    REFERENCES `advert` (`adv_id`)
    ON DELETE CASCADE
    ON UPDATE CASCADE)
ENGINE = InnoDB;
  • Вопрос задан
  • 15543 просмотра
Решения вопроса 1
@immelnikoff
Изучаю БД
В рамках одной БД все CONSTRAINT'ы должны иметь уникальные имена. Возможно проблема в этом.
Другой вариант -- несовпадение доменов (типа и ограничений) поля внешнего ключа с полем, на которое он ссылается.
Третий вариант -- ссылочные поля должны быть потенциальными ключами.
Четвертый вариант -- родительских таблиц не существует.
Пятый -- подсистема хранения родительских таблиц MyISAM.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы