Ошибка при попытке УДАЛИТЬ внешний ключ: «ОШИБКА 1025 (HY000):» - PullRequest
8 голосов
/ 15 августа 2011

У меня проблемы с удалением внешнего ключа. Может ли кто-нибудь помочь, пожалуйста?

Вот моя группа SHOW CREATE TABLE:

| catgroup | CREATE TABLE `catgroup` (
  `catgroupid` int(11) NOT NULL AUTO_INCREMENT,
  `category_id` int(11) NOT NULL,
  `group_id` int(11) NOT NULL,
  PRIMARY KEY (`catgroupid`),
  KEY `category_id` (`category_id`),
  KEY `group_id` (`group_id`),
  CONSTRAINT `catgroup_ibfk_1` FOREIGN KEY (`category_id`) REFERENCES `cat
s` (`cid`) ON UPDATE CASCADE,
  CONSTRAINT `catgroup_ibfk_2` FOREIGN KEY (`group_id`) REFERENCES `groups
d`) ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8 |

Вот как я пытаюсь сбросить внешний ключ:

ALTER TABLE catgroup DROP FOREIGN KEY group_id_ibfk_2;

А вот и сообщение об ошибке:

ОШИБКА 1025 (HY000): Ошибка при переименовании файла. \ Asset_base \ catgroup в . \ Asset_base \

sql2-16b4-4 '(код ошибки: 152)

Что я делаю не так?

Ответы [ 3 ]

7 голосов
/ 15 августа 2011

У вас неправильное имя внешнего ключа. Попробуйте catgroup_ibfk_2 вместо.

Странное сообщение об ошибке уже сообщается как ошибка в MySQL .

2 голосов
/ 22 мая 2013

Древний пост, но FWIW Я только что обнаружил, что имя внешнего ключа чувствительно к регистру ...

0 голосов
/ 15 августа 2011
[admin@gold ~]$ perror 152
MySQL error code 152: Cannot delete a parent row

Изменение индексов / ограничений для таблицы InnoDB включает в себя удаление таблицы и ее перестройку. Возможно, вам придется удалить ограничение в другой таблице, указывающее на эти родительские строки, прежде чем вы сможете это сделать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...