Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Каскадное удаление 
:(
    Опции темы
Igor_CH
Дата 16.6.2006, 08:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 288
Регистрация: 20.3.2005

Репутация: нет
Всего: нет



Почему не работает каскадное удаление по полю id_sec

Код

CREATE TABLE `photo_sec` (
  `id_sec` bigint(20) NOT NULL auto_increment,
  `data` datetime NOT NULL default '0000-00-00 00:00:00',
  `sec_name` varchar(200) NOT NULL default '',
  `sec_text` varchar(250) NOT NULL default '',
  `status` enum('OFF','ON') NOT NULL default 'OFF',
  PRIMARY KEY  (`id_sec`),
  UNIQUE KEY `id_sec` (`id_sec`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=6 ;


CREATE TABLE `photo_kat` (
  `id_kat` bigint(20) NOT NULL auto_increment,
  `data` datetime NOT NULL default '0000-00-00 00:00:00',
  `name` varchar(200) NOT NULL default '',
  `text` varchar(250) NOT NULL default '',
  `status` enum('OFF','ON') NOT NULL default 'OFF',
  `komment` enum('OFF','ON') NOT NULL default 'OFF',
  `id_sec` int(11) NOT NULL default '0' REFERENCES photo_sec(id_sec) ON DELETE CASCADE,
  PRIMARY KEY  (`id_kat`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=41 ;
 
PM MAIL   Вверх
smartov
Дата 16.6.2006, 13:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: 2
Всего: 259



А где же собственно запрос?  
PM MAIL   Вверх
Mal Hack
Дата 16.6.2006, 13:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 11
Всего: 261



В MySQL каскадное удаление надо реализовывать ручками, очищая соответствующие таблицы с соответствующими условиями. 
PM ICQ   Вверх
Bikutoru
Дата 16.6.2006, 13:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Увлекающийся
**


Профиль
Группа: Участник
Сообщений: 522
Регистрация: 24.5.2005
Где: Москва

Репутация: 2
Всего: 22



Помнится, внешние ключи (а по ним и происходит каскадное удаление) в MyISAM не работают. Попробуй поменять тип таблицы на InnoDB.

Добавлено @ 14:02 
Mal Hack, в 5ой версии не все так плохо
http://dev.mysql.com/doc/refman/5.0/en/inn...onstraints.html 


--------------------
Человек, словно в зеркале мир — многолик, 
Он ничтожен — и он же безмерно велик!
Омар Хайям
PM   Вверх
Mal Hack
Дата 16.6.2006, 14:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 11
Всего: 261



Но это InnoDB, как правило все MyISAM используют. 
PM ICQ   Вверх
Bikutoru
Дата 16.6.2006, 14:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Увлекающийся
**


Профиль
Группа: Участник
Сообщений: 522
Регистрация: 24.5.2005
Где: Москва

Репутация: 2
Всего: 22



Цитата(Mal Hack @  16.6.2006,  15:15 Найти цитируемый пост)
Но это InnoDB, как правило все MyISAM используют.

Согласен, но MySQL предоставляет выбор - хочешь прелестей в виде внешних ключей и каскадных обновлений, то тебе дорога к InnoDB, а хочешь большей скорости - добро пожаловать в MyISAM. По-моему это правильно.
 


--------------------
Человек, словно в зеркале мир — многолик, 
Он ничтожен — и он же безмерно велик!
Омар Хайям
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.0962 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.