
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
15.05.2014, 20:56:34
|
|||
|---|---|---|---|
|
|||
update cascade в рекурсивной таблице и error1451 |
|||
|
#18+
Нужна БД для хранения областей, городов, районов и сёл. Решил хранить всё в одной таблице: у каждого района много городов, у каждого города-районов и т.п. Создание таблицы: CREATE TABLE IF NOT EXISTS `r_district` ( `id_district` int(10) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(64) NOT NULL, `type` enum('область','город','район','село') NOT NULL, `parent_id` int(10) unsigned DEFAULT NULL, PRIMARY KEY (`id_district`), KEY `parent_id` (`parent_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1; И добавление внешнего ключа: ALTER TABLE `r_district` ADD CONSTRAINT `r_district_ibfk_1` FOREIGN KEY (`parent_id`) REFERENCES `r_district` (`id_district`) ON DELETE CASCADE ON UPDATE CASCADE; Сначала показалось что всё норм, но потом попробывал изменить id_district одной из строк и проверить, как измениться parent_id у "дочерних" элементов. На запрос UPDATE `realtor`.`r_district` SET `id_district` = '1222' WHERE `r_district`.`id_district` = 1 mysql ругается: #1451 - Cannot delete or update a parent row: a foreign key constraint fails (`realtor`.`r_district`, CONSTRAINT `r_district_ibfk_1` FOREIGN KEY (`parent_id`) REFERENCES `r_district` (`id_district`) ON DELETE CASCADE ON UPDATE CASCADE) При этом аналогичный DELETE запрос выполняется без проблем. В гугле накопал похожий пример где сказано, что так не будет работать, но почему? и как это исправить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=47&tablet=1&tid=1834826]: |
0ms |
get settings: |
5ms |
get forum list: |
16ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
45ms |
get topic data: |
6ms |
get forum data: |
4ms |
get page messages: |
17ms |
get tp. blocked users: |
1ms |
| others: | 219ms |
| total: | 317ms |

| 0 / 0 |
