Я создал в своей базе данных таблицу с именами категорий:
CREATE TABLE IF NOT EXISTS `category`
( `categoryName` varchar(128) ,
`subcategoryName` varchar(128) ,
PRIMARY KEY (`categoryName`) )
ENGINE=InnoDB DEFAULT CHARSET=latin1
Категория в этой таблице может быть подкатегорией другой категории в этом поле. Итак, подкатегория - это FK для категорий. Инициализация:
ALTER TABLE `category` ADD FOREIGN KEY (`subcategoryName`) REFERENCES `category`(`categoryName`) ON DELETE RESTRICT ON UPDATE RESTRICT;
Поэтому я попытался вставить значения в эту таблицу следующим образом:
INSERT INTO `category` (`categoryName`, `subcategoryName`) VALUES
( 'Literature','Satire'),
( 'Science','Mathematics'),
( 'Science','Physics');
Это, однако, дает мне эту ошибку:
#1452 - Cannot add or update a child row: a foreign key constraint fails (`php_beginner_crud_level_1`.`category`, CONSTRAINT `category_ibfk_1` FOREIGN KEY (`subcategoryName`) REFERENCES `category` (`categoryName`))
Любые идеи о том, почему этопроисходит и как мне решить это?