kate
Новичок
Каскадное удаление и обновление в innoDB
Никак не получается...ругается на внешний ключ. при попытке удалить раздел
а при попытке обновить по полю hide страницу тоже ругается.
Вот дамп, посмотрите плиз...
---------------------------------------------------------------------------------------------------------------------
-- phpMyAdmin SQL Dump
-- version 2.6.0-pl2
-- http://www.phpmyadmin.net
--
-- Хост: localhost
-- Время создания: Июн 06 2006 г., 15:28
-- Версия сервера: 4.0.22
-- Версия PHP: 5.0.2
--
-- БД: `cms`
--
-- --------------------------------------------------------
--
-- Структура таблицы `pages`
--
CREATE TABLE `pages` (
`idp` int(6) unsigned NOT NULL auto_increment,
`idr` smallint(5) unsigned NOT NULL default `0`,
`pos` int(11) NOT NULL default `0`,
`name` tinytext NOT NULL,
`addr` tinytext NOT NULL,
`title` tinytext NOT NULL,
`keyw` tinytext NOT NULL,
`desc_p` tinytext NOT NULL,
`h1` tinytext NOT NULL,
`content` text NOT NULL,
`hide` enum(`hide`,`show`) NOT NULL default `hide`,
PRIMARY KEY (`idp`),
KEY `idr` (`idr`),
KEY `hide` (`hide`)
) TYPE=InnoDB AUTO_INCREMENT=7 ;
--
-- Дамп данных таблицы `pages`
--
INSERT INTO `pages` VALUES (2, 1, 1, `Миссия`, `/about/mission.php`, `Миссия`, `Миссия`, `Миссия`, `Миссия`, `Миссия`, `show`);
INSERT INTO `pages` VALUES (3, 1, 3, `Контакты`, `/about/contacts.php`, `Контакты`, `Контакты`, `Контакты`, `Контакты`, `Контакты`,
`show`);
INSERT INTO `pages` VALUES (4, 1, 5, `Вакансии`, `/about/vacancy.php`, `Вакансии`, `Вакансии`, `Вакансии`, `Вакансии`, `Вакансии`,
`show`);
INSERT INTO `pages` VALUES (5, 1, 4, `Планы`, `/about/plans.php`, `Планы`, `Планы`, `Планы`, `Планы`, `Планы`, `show`);
INSERT INTO `pages` VALUES (6, 1, 2, `Партнёры`, `/about/partners.php`, `Партнёры`, `Партнёры`, `Партнёры`, `Партнёры`, `Партнёры`,
`show`);
-- --------------------------------------------------------
--
-- Структура таблицы `razdel`
--
CREATE TABLE `razdel` (
`idr` smallint(5) unsigned NOT NULL auto_increment,
`pos` int(11) NOT NULL default `0`,
`name` tinytext NOT NULL,
`addr` tinytext NOT NULL,
`title` tinytext NOT NULL,
`keyw` tinytext NOT NULL,
`desc_r` tinytext NOT NULL,
`h1` tinytext NOT NULL,
`content` text NOT NULL,
`hide` enum(`hide`,`show`) NOT NULL default `hide`,
PRIMARY KEY (`idr`),
KEY `hide` (`hide`)
) TYPE=InnoDB AUTO_INCREMENT=7 ;
--
-- Дамп данных таблицы `razdel`
--
INSERT INTO `razdel` VALUES (1, 1, `О КОМПАНИИ`, `/about/`, `О компании`, `О компании`, `О компании`, `О компании`, `О компании`,
`show`);
INSERT INTO `razdel` VALUES (2, 2, `УСЛУГИ`, `/services/`, `УСЛУГИ`, `УСЛУГИ`, `УСЛУГИ`, `УСЛУГИ`, `УСЛУГИ`, `show`);
INSERT INTO `razdel` VALUES (3, 3, `ПРОДУКЦИЯ`, `//`, `ПРОДУКЦИЯ`, `ПРОДУКЦИЯ`, `ПРОДУКЦИЯ`, `ПРОДУКЦИЯ`,
`П<STRONG>РОДУКЦИЯ</STRONG>`, `show`);
INSERT INTO `razdel` VALUES (4, 4, `СПРАВОЧНАЯ ИНФОРМАЦИЯ`, `/info/`, `СПРАВОЧНАЯ ИНФОРМАЦИЯ`, `СПРАВОЧНАЯ
ИНФОРМАЦИЯ`, `СПРАВОЧНАЯ ИНФОРМАЦИЯ`, `СПРАВОЧНАЯ ИНФОРМАЦИЯ`, `СПРАВОЧНАЯ ИНФОРМАЦИЯ`, `show`);
INSERT INTO `razdel` VALUES (5, 5, `ПРОДУКЦИЯ`, `/products/`, `ПРОДУКЦИЯ`, `ПРОДУКЦИЯ`, `ПРОДУКЦИЯ`, `ПРОДУКЦИЯ`,
`ПРОДУКЦИЯ`, `show`);
INSERT INTO `razdel` VALUES (6, 6, `ПРОЕКТЫ`, `/projects/`, `ПРОЕКТЫ`, `ПРОЕКТЫ`, `ПРОЕКТЫ`, `ПРОЕКТЫ`, `ПРОЕКТЫ`, `show`);
--
-- Constraints for table `pages`
--
ALTER TABLE `pages`
ADD CONSTRAINT `pages_ibfk_1` FOREIGN KEY (`idr`) REFERENCES `razdel` (`idr`) ON DELETE CASCADE ON UPDATE NO
ACTION,
ADD CONSTRAINT `pages_ibfk_2` FOREIGN KEY (`hide`) REFERENCES `razdel` (`hide`) ON DELETE NO ACTION ON UPDATE
CASCADE;
---------------------------------------------------------------------------------------------------------------------
Ну никак не получается...помогите!!!
Что не так? версия мускула у меня - MySQL 4.0.22-nt-log
Никак не получается...ругается на внешний ключ. при попытке удалить раздел
а при попытке обновить по полю hide страницу тоже ругается.
Вот дамп, посмотрите плиз...
---------------------------------------------------------------------------------------------------------------------
-- phpMyAdmin SQL Dump
-- version 2.6.0-pl2
-- http://www.phpmyadmin.net
--
-- Хост: localhost
-- Время создания: Июн 06 2006 г., 15:28
-- Версия сервера: 4.0.22
-- Версия PHP: 5.0.2
--
-- БД: `cms`
--
-- --------------------------------------------------------
--
-- Структура таблицы `pages`
--
CREATE TABLE `pages` (
`idp` int(6) unsigned NOT NULL auto_increment,
`idr` smallint(5) unsigned NOT NULL default `0`,
`pos` int(11) NOT NULL default `0`,
`name` tinytext NOT NULL,
`addr` tinytext NOT NULL,
`title` tinytext NOT NULL,
`keyw` tinytext NOT NULL,
`desc_p` tinytext NOT NULL,
`h1` tinytext NOT NULL,
`content` text NOT NULL,
`hide` enum(`hide`,`show`) NOT NULL default `hide`,
PRIMARY KEY (`idp`),
KEY `idr` (`idr`),
KEY `hide` (`hide`)
) TYPE=InnoDB AUTO_INCREMENT=7 ;
--
-- Дамп данных таблицы `pages`
--
INSERT INTO `pages` VALUES (2, 1, 1, `Миссия`, `/about/mission.php`, `Миссия`, `Миссия`, `Миссия`, `Миссия`, `Миссия`, `show`);
INSERT INTO `pages` VALUES (3, 1, 3, `Контакты`, `/about/contacts.php`, `Контакты`, `Контакты`, `Контакты`, `Контакты`, `Контакты`,
`show`);
INSERT INTO `pages` VALUES (4, 1, 5, `Вакансии`, `/about/vacancy.php`, `Вакансии`, `Вакансии`, `Вакансии`, `Вакансии`, `Вакансии`,
`show`);
INSERT INTO `pages` VALUES (5, 1, 4, `Планы`, `/about/plans.php`, `Планы`, `Планы`, `Планы`, `Планы`, `Планы`, `show`);
INSERT INTO `pages` VALUES (6, 1, 2, `Партнёры`, `/about/partners.php`, `Партнёры`, `Партнёры`, `Партнёры`, `Партнёры`, `Партнёры`,
`show`);
-- --------------------------------------------------------
--
-- Структура таблицы `razdel`
--
CREATE TABLE `razdel` (
`idr` smallint(5) unsigned NOT NULL auto_increment,
`pos` int(11) NOT NULL default `0`,
`name` tinytext NOT NULL,
`addr` tinytext NOT NULL,
`title` tinytext NOT NULL,
`keyw` tinytext NOT NULL,
`desc_r` tinytext NOT NULL,
`h1` tinytext NOT NULL,
`content` text NOT NULL,
`hide` enum(`hide`,`show`) NOT NULL default `hide`,
PRIMARY KEY (`idr`),
KEY `hide` (`hide`)
) TYPE=InnoDB AUTO_INCREMENT=7 ;
--
-- Дамп данных таблицы `razdel`
--
INSERT INTO `razdel` VALUES (1, 1, `О КОМПАНИИ`, `/about/`, `О компании`, `О компании`, `О компании`, `О компании`, `О компании`,
`show`);
INSERT INTO `razdel` VALUES (2, 2, `УСЛУГИ`, `/services/`, `УСЛУГИ`, `УСЛУГИ`, `УСЛУГИ`, `УСЛУГИ`, `УСЛУГИ`, `show`);
INSERT INTO `razdel` VALUES (3, 3, `ПРОДУКЦИЯ`, `//`, `ПРОДУКЦИЯ`, `ПРОДУКЦИЯ`, `ПРОДУКЦИЯ`, `ПРОДУКЦИЯ`,
`П<STRONG>РОДУКЦИЯ</STRONG>`, `show`);
INSERT INTO `razdel` VALUES (4, 4, `СПРАВОЧНАЯ ИНФОРМАЦИЯ`, `/info/`, `СПРАВОЧНАЯ ИНФОРМАЦИЯ`, `СПРАВОЧНАЯ
ИНФОРМАЦИЯ`, `СПРАВОЧНАЯ ИНФОРМАЦИЯ`, `СПРАВОЧНАЯ ИНФОРМАЦИЯ`, `СПРАВОЧНАЯ ИНФОРМАЦИЯ`, `show`);
INSERT INTO `razdel` VALUES (5, 5, `ПРОДУКЦИЯ`, `/products/`, `ПРОДУКЦИЯ`, `ПРОДУКЦИЯ`, `ПРОДУКЦИЯ`, `ПРОДУКЦИЯ`,
`ПРОДУКЦИЯ`, `show`);
INSERT INTO `razdel` VALUES (6, 6, `ПРОЕКТЫ`, `/projects/`, `ПРОЕКТЫ`, `ПРОЕКТЫ`, `ПРОЕКТЫ`, `ПРОЕКТЫ`, `ПРОЕКТЫ`, `show`);
--
-- Constraints for table `pages`
--
ALTER TABLE `pages`
ADD CONSTRAINT `pages_ibfk_1` FOREIGN KEY (`idr`) REFERENCES `razdel` (`idr`) ON DELETE CASCADE ON UPDATE NO
ACTION,
ADD CONSTRAINT `pages_ibfk_2` FOREIGN KEY (`hide`) REFERENCES `razdel` (`hide`) ON DELETE NO ACTION ON UPDATE
CASCADE;
---------------------------------------------------------------------------------------------------------------------
Ну никак не получается...помогите!!!
Что не так? версия мускула у меня - MySQL 4.0.22-nt-log