Задать вопрос
@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;
  • Вопрос задан
  • 16320 просмотров
Подписаться 2 Средний Комментировать
Решения вопроса 1
@immelnikoff
Изучаю БД
В рамках одной БД все CONSTRAINT'ы должны иметь уникальные имена. Возможно проблема в этом.
Другой вариант -- несовпадение доменов (типа и ограничений) поля внешнего ключа с полем, на которое он ссылается.
Третий вариант -- ссылочные поля должны быть потенциальными ключами.
Четвертый вариант -- родительских таблиц не существует.
Пятый -- подсистема хранения родительских таблиц MyISAM.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
ipatiev
@ipatiev
Потомок старинного рода Ипатьевых-Колотитьевых
Это дебильное сообщение об ошибке, но если выполнить команду SHOW ENGINE INNODB STATUS, то там, под заголовком LATEST FOREIGN KEY ERROR будет нормальное объяснение, что конкретно не так.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
22 дек. 2024, в 20:12
10000 руб./за проект
22 дек. 2024, в 19:47
3000 руб./за проект
22 дек. 2024, в 19:03
60000 руб./за проект