Создал Java проэкт который работает с базой данных в MySql через JDBC. У меня есть такие таблицы:
CREATE TABLE `brand` (
`id` int NOT NULL AUTO_INCREMENT,
`name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb3 COLLATE=utf8_bin
CREATE TABLE `category` (
`id` int NOT NULL AUTO_INCREMENT,
`name` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
`discount` int DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb3 COLLATE=utf8_bin
CREATE TABLE `producttype` (
`id` int NOT NULL AUTO_INCREMENT,
`name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb3 COLLATE=utf8_bin
CREATE TABLE `product` (
`id` int NOT NULL AUTO_INCREMENT,
`brandId` int NOT NULL,
`categoryId` int NOT NULL,
`productTypeId` int NOT NULL,
`price` double(10,2) NOT NULL,
PRIMARY KEY (`id`),
KEY `brandId_idx` (`brandId`),
KEY `categoryId_idx` (`categoryId`),
KEY `prodoctTypeId_idx` (`productTypeId`),
CONSTRAINT `brandId` FOREIGN KEY (`brandId`) REFERENCES `brand` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `categoryId` FOREIGN KEY (`categoryId`) REFERENCES `category` (`id`),
CONSTRAINT `productTypeId` FOREIGN KEY (`productTypeId`) REFERENCES `producttype` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb3 COLLATE=utf8_bin
Я создал консольное Java приложение для работы с БД через Jdbc. В таблицы Brand, Category и productType данные вставились через Java без проблем, но когда я пытаюсь вставить данные в таблицу Product, то выдает такую ошибку:
Cannot add or update a child row: a foreign key constraint fails (`internetshop`.`product`, CONSTRAINT `productTypeId` FOREIGN KEY (`productTypeId`) REFERENCES `producttype` (`id`) ON DELETE CASCADE ON UPDATE CASCADE)