Когда я делаю что-то вроде:
DELETE FROM users_has_pais WHERE users_id = 151
Я получаю следующее сообщение об ошибке:
SQLSTATE [23000]: Нарушение ограничения целостности: 1451 Невозможно удалить или обновить родительскую строку: сбой ограничения внешнего ключа (gisele
. users_has_pais
, CONSTRAINT users_has_pais_ibfk_3
FOREIGN KEY (users_id
) ССЫЛКИ users
(id
) В УДАЛЕНИИ НЕТ ДЕЙСТВИЙ В ОБНОВЛЕНИИ НЕТ ДЕЙСТВИЙ)
Я не уверен, в чем проблема, хотя я предполагаю, что это как-то связано с ON УДАЛИТЬ НЕТ ДЕЙСТВИЙ.Я не знаю, что мне следует изменить на это, хотя ... для справки я вставил дамп структуры моих таблиц:
CREATE TABLE IF NOT EXISTS `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`email` varchar(50) DEFAULT NULL,
`password` varchar(250) DEFAULT NULL,
`url` varchar(50) DEFAULT NULL,
`responsable` varchar(50) DEFAULT NULL,
`role` varchar(25) DEFAULT NULL,
`fecha` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `email` (`email`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=162 ;
CREATE TABLE IF NOT EXISTS `pais` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`pais` varchar(20) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `pais` (`pais`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;
users_has_pais | CREATE TABLE `users_has_pais` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`users_id` int(11) NOT NULL,
`pais_id` int(11) NOT NULL,
PRIMARY KEY (`id`),
KEY `user` (`users_id`),
KEY `index3` (`pais_id`),
KEY `users_id` (`users_id`),
KEY `pais_id` (`pais_id`),
CONSTRAINT `users_has_pais_ibfk_3` FOREIGN KEY (`users_id`) REFERENCES `users` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
CONSTRAINT `users_has_pais_ibfk_2` FOREIGN KEY (`pais_id`) REFERENCES `pais` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB AUTO_INCREMENT=46 DEFAULT CHARSET=latin1 |
РЕДАКТИРОВАТЬ: вставка информации об ограничениях