BŁĄD 1452: Nie można dodać lub zaktualizować wiersza podrzędnego: ograniczenie klucza obcego nie powiedzie się
Stworzyłem dwie tabele w MySQL 5.6.11, jak pokazano poniżej za pomocą MySQL Workbench 5.2.47.
Thecountry
stół:
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$
Thestate_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=''$
Jest jeden wiersz wcountry
stół zid
1. Pozwala na wstawienie tylko jednego wiersza (podrzędnego) do jego tabeli podrzędnejstate_table
. Jeśli spróbujesz wykonać więcej wierszy, pojawia się następujący błąd.
BŁĄD 1452: Nie można dodać lub zaktualizować wiersza podrzędnego: ograniczenie klucza obcego kończy się niepowodzeniem (social_networking
.state_table
, KONSTRAKTcountry_fk
KLUCZ ZAGRANICZNY (id
) REFERENCJEcountry
(id
) ON DELETE CASCADE ON UPDATE CASCADE)
Instrukcja SQL:
INSERT INTO `social_networking`.`state_table` (`id`, `state_name`, `country_id`) VALUES ('2', 'xxx', '1')
Właściwie staram się zmapować te tabele za pomocą ORM (JPA), gdzie zawsze widzę tylkoOneToOne
związek.
czego mi brakuje?