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