【发布时间】:2013-05-03 01:33:27
【问题描述】:
我通过 MySQL Workbench 5.2.47 在 MySQL 5.6.11 中创建了两个表,如下所示。
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$$
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 关系。
我错过了什么?
【问题讨论】:
标签: mysql mysql-workbench mysql-error-1452