Задавайте вопросы, мы ответим
Вы не зашли.
Здраствуйте!
Есть таблица Books:
create table books
(id not null primary key auto_increment,
name varchar(30))
engine = innodb;
Есть таблица newtable, ИД-поле которой - внешний ключ к id таблицы books с опцией ON DELETE CASCADE:
create table newtable
(id not null primary key auto_increment,
name varchar(30),
foreign key (id) references books (id) ON DELETE CASCADE)
engine = innodb;
Добавляю запись в обе таблицы
INSERT INTO books values (id, 'AAA');
INSERT INTO newtable values (id, 'BBB');
Получается что в обеих таблицах есть запись с одиноковым id, то есть 1.
Затем удаляю из родительской таблицы (books) эту единственную запись:
DELETE FROM books where id = '1';
На что он ругается ЧТО МОЛ КЛЮЧИ РОДИТЕЛЬСКОЙ ТАБЛИЦЫ УДАЛЯТЬ НЕЛЬЗЯ!!!!
А как же нельзя, я ж ведь ON DELETE CASCADE указал!!!
В чем проблема, форумчане?(((
Отредактированно Tihondrius (20.09.2009 13:44:10)
Неактивен
Странно. Может у вас какая-нибудь бета-версия стоит?
Неактивен
как глянуть? я ввожу mysql -u root -p version, он предлагает ввести пароль а потом ругается что БД version не существует... как еще моно глянуть?
Неактивен
Версия - 5.1.3.5-community
Неактивен
5.1.3 — настолько ранняя бета, что просто удивительно, что оно еще живо. На 5.1.34
работает нормально (с точностью до того, что всем id я приписал тип int).
P.S. Еще желательно писать текст ошибок так, как их выводит MySQL, а не большими
русскими буквами.
Неактивен