У меня есть 3 таблицы в моей БД (их больше, но к ним еще нет соединений)
- таблица "молекула" с идентификатором столбца
- таблица "дескриптор"с столбцами "id" и "молекуле_ид" и внешним ключом, ссылающимся на "молекулу.ид"
- таблица "tDepDescriptor" с столбцами "id" и "дескриптор_ид" и внешним ключом, ссылающимся на "дескриптор.ид"
(каждая таблица имеет больше столбцов, но ни один из них не действует как внешние ключи или что-то в этом роде)
Для всех внешних ключей указано «при каскаде удаления», все идентификаторы имеют беззнаковые целые (5).
Теперь, если я попытаюсь удалить запись в «молекуле», для которой есть ссылки на записи в «дескрипторе» и «tDepDescriptor», то ничего не произойдет, как если бы внешние ключи были установлены на «при обновлении ограничить», нетошибка дана.Если я удаляю запись в «дескрипторе», все ссылки на записи в «tDepDescriptor» удаляются, как они должны.То же самое происходит, если я пытаюсь удалить запись в "молекуле", для которой есть ссылки на записи в "дескрипторе", но нет ссылок на эти записи "descriptor" в "tDepDescriptor".Таким образом, «каскад удаления» работает для двух таблиц, но «каскад», по-видимому, не передается, когда задействованы три таблицы.
Что таблицы должны делать: Когда я хочу удалить запись в «молекуле», все ссылки в «дескрипторе» удаляются.И поэтому все записи в «tDepDescriptor», которые имеют ссылку на одну из удаленных записей в «дескрипторе», также удаляются.
версия сервера mysql 5.1, движок InnoDB
Есть надежда, что кто-то может последовать этому сложному объяснению и помочь мне.
// РЕДАКТИРОВАТЬ: Нашел проблему.Кажется, проблема с phpMyAdmin, а не с базой данных.нажатие на удаление в PMA не сработало, но кодирование запроса вручную сработало, каскадно пройдя все три таблицы.Странно, но, по крайней мере, я знаю, что мои таблицы работают правильно.