A_J
Новичок
Имеются 3 таблицы: events, events_objects, objects. Вторая из них дочерняя, объявляется с внешними ключами, остальные имеют связи с другими таблицами:
Добавляю значение в дочернюю:
В родительских эти айдишники есть.
Ошибка:
Код:
CREATE TABLE `events_objects` (
`event_id` int(10) unsigned NOT NULL,
`object_id` int(10) unsigned NOT NULL,
KEY `user_objects_fk1` (`object_id`),
KEY `event_id` (`event_id`,`object_id`),
CONSTRAINT `user_objects_fk0` FOREIGN KEY (`event_id`) REFERENCES `sn_events` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `user_objects_fk1` FOREIGN KEY (`object_id`) REFERENCES `objects` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `objects` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`object_name` text NOT NULL,
`object_create_date` datetime NOT NULL,
`user_id` int(10) unsigned NOT NULL,
PRIMARY KEY (`id`),
KEY `fk_objects_users1_idx` (`user_id`),
CONSTRAINT `fk_objects_users1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `sn_events` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`applet_id` int(10) unsigned NOT NULL,
`sn_user_id` int(10) unsigned NOT NULL,
`status` tinyint(1) NOT NULL,
PRIMARY KEY (`id`),
KEY `applet_id` (`applet_id`,`sn_user_id`),
CONSTRAINT `sn_events_fk0` FOREIGN KEY (`applet_id`) REFERENCES `applets` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `sn_events_ibfk_1` FOREIGN KEY (`id`) REFERENCES `events_objects` (`event_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8
Код:
INSERT INTO events_objects VALUES (event_id=29, object_id=25)
Ошибка:
Как правильно должна задаваться таблица или как правильно нужно добавлять в такую таблицу данные?#1452 - Cannot add or update a child row: a foreign key constraint fails (`db`.`events_objects`, CONSTRAINT `user_objects_fk1` FOREIGN KEY (`object_id`) REFERENCES `objects` (`id`) ON DELETE CASCADE ON UPDATE CASCADE)