Внутрение связи в таблице

MiniM

Делаю такую таблицу:CREATE TABLE `test` ( `id` int(11) NOT NULL default '0', `sid` int(11) NOT NULL default '0', PRIMARY KEY (`id`), KEY `sid` (`sid`)) ENGINE=InnoDB DEFAULT CHARSET=latin1;ALTER TABLE `test` ADD CONSTRAINT `test_ibfk_1` FOREIGN KEY (`sid`) REFERENCES `test` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;поидее при изменении поля id должны поменяться и поля sid,что имеют такие же значения как и id.Но на практике вылазит ошибка:#1217 - Cannot delete or update a parent row: a foreign key constraint failsпри удалении все нормально, может кто подскажет в чем сдесь проблема?
5 ответов

MiniM

InnoDB does not support cascaded update to the SAME table. It could lead to an infinite loop in the current implementation.


MiniM

Грустно :(придется ручками все писать


MiniM

А можно както сделать так чтоб удаление срабатывало, а при обновлении ничего не происходило?


MiniM

либо не писать ON UPDATE ... вообще, либо писать ON UPDATE RESTRICT или ON UPDATE NO ACTION


MiniM

Спасибо огромное!