ERROR 1452: no se puede agregar o actualizar una fila secundaria: falla una restricción de clave externa
He creado dos tablas en MySQL 5.6.11 como se muestra a continuación por medio de MySQL Workbench 5.2.47.
loscountry
mesa:
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$
losstate_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=''$
Hay una fila en elcountry
mesa con elid
1. Permite insertar solo una fila (secundaria) en su tabla secundariastate_table
. Si se intentan más filas, se produce el siguiente error.
ERROR 1452: no se puede agregar o actualizar una fila secundaria: falla una restricción de clave externa (social_networking
.state_table
, RESTRICCIONcountry_fk
CLAVE EXTERNA (id
) REFERENCIAScountry
(id
) EN BORRAR LA CASCADA EN LA ACTUALIZACIÓN DE LA CASCADA)
Declaración SQL:
INSERT INTO `social_networking`.`state_table` (`id`, `state_name`, `country_id`) VALUES ('2', 'xxx', '1')
En realidad, estoy tratando de asignar estas tablas utilizando un ORM (JPA) donde siempre veo soloOneToOne
relación.
¿Qué me estoy perdiendo?