MYSQL и PHP: как добавить ограничение MySQL, но в любом случае продолжить, если не найден - PullRequest
0 голосов
/ 02 ноября 2018

У меня есть код, где мне нужно отключить проверку внешнего ключа при обновлении. Но я все еще нуждаюсь в этом, чтобы проверить для внешнего ключа, но продолжайте в любом случае, если ключ не найден. Установка продолжает ломаться из-за этого.

$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' )

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...