MySQL "ON DELETE CASCADE" слишком мощный - PullRequest
1 голос
/ 02 февраля 2010

эй, следующая проблема здесь: у меня есть таблица с людьми, у которых есть одно местоположение, если я удаляю местоположение для таблицы местоположений, я не потеряю назначенных людей.У меня есть запись в локации с идентификатором = 1 и именем: «Нет локации».и вот что я пытаюсь сделать, но у меня ничего не получается!

ALTER TABLE `persons`
  ADD CONSTRAINT `persons_ibfk_1` FOREIGN KEY (`location_id`)
  REFERENCES `locations` (`id`) ON DELETE SET `location_id` = 1;

спасибо!

1 Ответ

3 голосов
/ 02 февраля 2010

Используйте ON DELETE SET DEFAULT (и установите значение 1 по умолчанию) или ON DELETE SET NULL. Третий вариант - вручную установить все идентификаторы на 1 перед удалением.

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