2013-10-15 3 views
0

В БД я только одна таблица: навигация (InnoDB) enter image description hereУдалить запись из БД с возможными детей

Можно настроить эту таблицу: Если я удалить где идентификатор == 1, все id 1 (Корневой элемент) будут удалены автоматически?

UPDATE

Я пытаюсь воссоздать таблицу:

CREATE TABLE `navigation` (
`id` int(10) unsigned NOT NULL auto_increment, 
`name` VARCHAR(32), 
`url` VARCHAR(32), 
`position` int(10), 
`parent_id` int(10) unsigned NOT NULL, 
PRIMARY KEY (`id`), 
KEY `type` (`parent_id`) 
CONSTRAINT `??????` FOREIGN KEY (`parent_id`) 
    REFERENCES `types` (`id`) ON DELETE CASCADE ON UPDATE CASCADE 
) 

Но какое значение нужно в строке 9?

+0

Здесь таблица уже существует. –

ответ

0

The ?????? должен быть созданный вами внешний ключ (your_key_name) между таблицами. «parent_id» в навигации связан с «id» в типах. Когда таблица навигации имеет обновление или удаление, удаление/обновление каскадируются в таблицу типов.

CONSTRAINT `navigate2types` FOREIGN KEY (`parent_id`) 
    REFERENCES `types` (`id`) ON DELETE CASCADE ON UPDATE CASCADE 

Помните, что вам необходимо использовать движок хранения InnoDB.

+0

Теперь при запуске запроса:/* Ошибка SQL (1005): Невозможно создать таблицу «cms.navigation» (errno: 150) Неверное форматирование внешнего ключа * / –

Смежные вопросы