Я пытаюсь вставить запись, но получаю сообщение об ошибке «Сбой ограничения внешнего ключа». Я искал вокруг и видел, что каждый раз, когда возникает эта проблема, это происходит потому, что первичный ключ записи, которую они пытаются добавить, не существует в таблице, на которую ссылаются. В этом случае я вижу первичный ключ, существующий в ссылочной таблице, но я все еще не могу вставить запись.
Модель с идентификатором модели 171 существует, но при попытке добавить запись model_feature с этим идентификатором происходит сбой:
mysql> select distinct model_id from model;
+----------+
| model_id |
+----------+
| 167 |
| 168 |
| 169 |
| 170 |
| 171 |
+----------+
5 rows in set (0.00 sec)
mysql> INSERT INTO model_feature (feature_position, model_id, feature_name) VALUES (0, 171, 'my_feature');
ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails (`bpp`.`model_feature`, CONSTRAINT `model_feature_ibfk_1` FOREIGN KEY (`model_id`) REFERENCES `Model` (`model_id`) ON DELETE CASCADE)
Вот подробности model_feature:
mysql> show create table model_feature;
+---------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+---------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| model_feature | CREATE TABLE `model_feature` (
`model_id` int(11) DEFAULT NULL,
`feature_name` varchar(25) DEFAULT NULL,
`feature_position` int(11) DEFAULT NULL,
`model_feature_id` int(11) NOT NULL AUTO_INCREMENT,
`timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`model_feature_id`),
KEY `model_id` (`model_id`),
CONSTRAINT `model_feature_ibfk_1` FOREIGN KEY (`model_id`) REFERENCES `Model` (`model_id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=1343 DEFAULT CHARSET=utf8 |
+---------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
mysql> show columns from model_feature;
+------------------+-------------+------+-----+-------------------+-----------------------------+
| Field | Type | Null | Key | Default | Extra |
+------------------+-------------+------+-----+-------------------+-----------------------------+
| model_id | int(11) | YES | MUL | NULL | |
| feature_name | varchar(25) | YES | | NULL | |
| feature_position | int(11) | YES | | NULL | |
| model_feature_id | int(11) | NO | PRI | NULL | auto_increment |
| timestamp | timestamp | NO | | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
+------------------+-------------+------+-----+-------------------+-----------------------------+
5 rows in set (0.00 sec)
Обратите внимание, что у меня есть эта база данных на моем Mac, и я недавно скопировал схему в AWS посредством mysqldump-данных, скопировал их в свой экземпляр, загрузил и удалил записи (я думаю, что есть лучший способ сделать это, но это казалось легким). Именно на экземпляре AWS это терпит неудачу. Такая же вставка отлично работает на моем Mac / OSX.
Любой совет, почему это не удается?