Я чрезвычайно новичок в SQL, и я пытаюсь выполнить простой ALTER TABLE, чтобы создать новый столбец и использовать его в качестве внешнего ключа для ссылки на другую простую таблицу в моей базе данных. Я изменил обе таблицы как InnoDB
Однако при выполнении кода ALTER TABLE я получаю следующую ошибку:
Error 1452 Cannot add or update a child row:
a foreign key constraint fails (`toys`.<result 2 when
explaining filename '#sql-6d4_6'>, CONSTRAINT
`#sql-6d4_6_ibfk_1` FOREIGN KEY (`toy_id`) REFERENCES `toys` (`toy_id`))
Ниже показаны DESC обеих таблиц:
Таблица 1:
FIELD TYPE NULL KEY EXTRA
toy_id int(11) NO PRI auto_increment
toy varchar(50) YES
Таблица 2:
FIELD TYPE NULL KEY EXTRA
boy_id int(11) NO PRI auto_increment
boy varchar(50) YES
И это запрос ALTER, который я пытался выполнить:
ALTER TABLE boys
ADD COLUMN toy_id INT NOT NULL,
ADD CONSTRAINT toys_toy_id_fk
FOREIGN KEY(toy_id)
REFERENCES toys(toy_id);
Я искал все, пытаясь понять это, но не повезло. Спасибо заранее, и, пожалуйста, будьте любезны с этим новичком:)
EDIT:
Ниже приведены таблицы SHOW CREATE TABLE для обеих таблиц:
ТАБЛИЦА 1:
CREATE TABLE `toys` (
`toy_id` int(11) NOT NULL AUTO_INCREMENT,
`toy` varchar(50) DEFAULT NULL,
PRIMARY KEY (`toy_id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8
ТАБЛИЦА 2:
CREATE TABLE `boys` (
`boy_id` int(11) NOT NULL AUTO_INCREMENT,
`boy` varchar(50) DEFAULT NULL,
PRIMARY KEY (`boy_id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8