Добрый день.
Есть таблицы
CREATE TABLE IF NOT EXISTS `user` (
`user_id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
...
PRIMARY KEY (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `user_user` (
`user_id1` INT UNSIGNED NOT NULL,
`user_id2` INT UNSIGNED NOT NULL,
...
PRIMARY KEY (`user_id1`, `user_id2`),
KEY `user_id1_id` (`user_id1`),
KEY `user_id2_id` (`user_id2`),
CONSTRAINT `user_user_ibfk_2` FOREIGN KEY (`user_id2`) REFERENCES `user` (`user_id`) ON DELETE CASCADE,
CONSTRAINT `user_user_ibfk_1` FOREIGN KEY (`user_id1`) REFERENCES `user` (`user_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Если во 2-ую таблицу пытаемся положить данные с id, которых нет в первой таблице, то возникает собственно exception, который не желателен, но структура таблиц должна остаться такой. Можно ли своять какой-нибудь такой запрос на вставку, который просто не вставлял бы данные при отсутствии хотя бы одного зависимого ключа в первой таблице?
Отредактированно JMax (06.04.2011 23:37:01)