ОШИБКА 1452: Невозможно добавить или обновить дочернюю строку: ограничение внешнего ключа не выполнено
Я создал две таблицы в MySQL 5.6.11, как показано ниже, с помощью MySQL Workbench 5.2.47.
country
Таблица:
delimiter $
CREATE TABLE `country` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`country_name` varchar(45) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INC
REMENT=2 DEFAULT CHARSET=utf8$
The:state_table
delimiter $
CREATE TABLE `state_table` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`state_name` varchar(45) DEFAULT NULL,
`country_id` int(11) DEFAULT NULL,
PRIMARY KEY (`id`),
CONSTRAINT `country_fk` FOREIGN KEY (`id`) REFERENCES `country` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT=''$
Есть один ряд вcountry
стол сid
1. Позволяет вставить только одну (дочернюю) строку в дочернюю таблицуstate_table
, Если предпринимается больше строк, возникает следующая ошибка.
ОШИБКА 1452: Невозможно добавить или обновить дочернюю строку: ограничение внешнего ключа не выполнено (.social_networking
state_table
, ОГРАНИЧЕНИЕcountry_fk
ИНОСТРАННЫЙ КЛЮЧ (id
) РЕКОМЕНДАЦИИ (country
id
) НА УДАЛЕННОМ КАСКАДЕ НА ОБНОВЛЕНИИ КАСКАДА)
Оператор SQL:
INSERT INTO `social_networking`.`state_table` (`id`, `state_name`, `country_id`) VALUES ('2', 'xxx', '1')
На самом деле я'я пытаюсь отобразить эти таблицы, используя ORM (JPA), где я всегда вижу толькоOneToOne
отношения.
Что мне не хватает?