我有 2 个关系表。这是我的模式。
CREATE TABLE `product_model` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`model_number` int(10) unsigned NOT NULL,
`model_name` varchar(100) NOT NULL,
`created_at` datetime DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `UNIQUE_model_number` (`model_number`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
CREATE TABLE `product_color` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`model_number_id` int(10) unsigned NOT NULL,
`color_code` int(11) NOT NULL,
`color_name` varchar(100) NOT NULL,
`is_active` tinyint(1) DEFAULT NULL,
`created_at` datetime DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `product_product_color` (`model_number_id`),
CONSTRAINT `FK_model_color` FOREIGN KEY (`model_number_id`) REFERENCES `product_model` (`model_number`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;
现在当我尝试插入产品颜色时,出现以下错误消息
An exception occurred while executing a query: SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails
我在代码中使用了以下几行来插入。
$modelFound = $em->getRepository(ProductModel::class)->findOneBy(['modelNumber' => $modelNumber);
$insert = new ProductColor();
$insert->setModelNumber($modelFound);