У меня есть код, где мне нужно отключить проверку внешнего ключа при обновлении. Но я все еще нуждаюсь в этом, чтобы проверить для внешнего ключа, но продолжайте в любом случае, если ключ не найден. Установка продолжает ломаться из-за этого.
$installthis->run("
ALTER TABLE `{$this->getTable('sweets/results')}`
ADD CONSTRAINT `FK_SWEETS_RESULTS_SWEET_ID_SWEETS_ID` FOREIGN KEY (`sweet_id`)
REFERENCES `{$this->getTable('sweets/sweets')}` (`id`)
ON DELETE CASCADE
ON UPDATE CASCADE;
ALTER TABLE `{$this->getTable('sweets/results_values')}`
ADD CONSTRAINT `FK_SWEETS_RESULTS_VALUES_RESULT_ID_SWEETS_RESULTS_ID` FOREIGN KEY (`result_id`)
REFERENCES `{$this->getTable('sweets/results')}` (`id`)
ON DELETE CASCADE
ON UPDATE CASCADE;
");
Что мне нужно изменить или добавить, если я хочу, чтобы это продолжалось?
Edit:
Ошибка гласит, что
SQLSTATE [23000]: нарушение ограничения целостности: 1452 Невозможно добавить или обновить дочернюю строку: ограничение внешнего ключа не выполнено
(sweets_database
. sweets_results
, ОГРАНИЧЕНИЕ
FK_SWEETS_RESULTS_SWEET_ID_SWEETS_ID
ИНОСТРАННЫЙ КЛЮЧ (sweet_id
)
ССЫЛКИ sweets
(id
) НА УДАЛИТЬ КАСКАД НА ОБНОВЛЕНИЕ КАСКАД), запрос
было: INSERT INTO sweets_results
(customer_id
, created_time
,
update_time
) ЗНАЧЕНИЯ (?, '2018-11-02 05:35:24', '2018-11-02
5:35:24' )