В каком порядке идут, УДАЛЯЮТ КАСКАДНЫЕ обработанные ограничения?

Для меня были выполнены следующие шаги:

  1. Откройте файл eclipse.ini
  2. Измените
    -Xms40m
    -Xmx512m
    
    на
    -Xms512m
    -Xmx1024m
    
  3. Перезапустите Eclipse

См. Здесь

10
задан OMG Ponies 22 December 2010 в 02:31
поделиться

3 ответа

Родительское удаление инициировало дочернее удаление, как Вы заявили, и я не знаю, почему оно переходит к дочерней таблице перед таблицей дяди. Я предполагаю, что необходимо было бы посмотреть на код DBMS для знания наверняка, но я уверен, что существует алгоритм, который выбирает который таблицы расположиться каскадом к сначала.

Система действительно 'не выясняет', наполняют способ, которым Вы подразумеваете здесь, и это просто следует своим ограничительным правилам. Проблемой является схема, которую Вы создали, в котором она встречается с ограничением, которое не позволит ей передать далее.

Я вижу то, что Вы говорите.. если бы это поразило таблицу дяди сначала, то это удалило бы запись и затем удалило бы дочерний элемент (и не поражать каскад дяди от дочернего удаления). Но несмотря на это, я не думаю, что схема была бы настроена для доверия такому поведению в действительности. Я думаю единственный способ знать наверняка, что продолжается, должен просмотреть код или привести одного из mysql/postgresql программистов здесь, чтобы сказать, как он обрабатывает fk ограничения.

3
ответ дан 4 December 2019 в 01:32
поделиться

В более простом случае, что происходит, если запись удалена от Ребенка и она имеет Дядю ссылки? Это является неуказанным, таким образом, ограничительный сбой для этого так или иначе.

Если удаление Ребенка не удаляет своих Дядей, затем что происходит вместо этого? Uncle.childid не может быть пустым.

То, что Вы хотите, является одной из этих трех вещей:

  1. Uncle.childid может быть пустым, и Вы хотите НА, УДАЛЯЮТ ПУСТОЙ УКАЗАТЕЛЬ НАБОРА для childid.
  2. Uncle.childid не может быть пустым, и Вы хотите НА, УДАЛЯЮТ КАСКАД для childid.
  3. Childid не принадлежит на Дяде, и Вы хотите отношение ChildsUncle с НА, УДАЛЯЮТ КАСКАДНЫЕ ограничения внешнего ключа и Ребенку и Дяде. Uncleid был бы ключом-кандидатом для того отношения (т.е. это должно быть уникально).
8
ответ дан 4 December 2019 в 01:32
поделиться

дизайн неправилен. У Вас должна быть единственная таблица с отношениями отцов и детей (буквально). Затем можно выяснить дядей (и тети) с запросом

select id from persons where -find all children of the grandparents
parent id in (
select parentid from persons --find the grandparents
where id in (
select parentid from persons --find the parents
where id=THECHILD) )
minus --and take out the child's parents
select parentid from persons
where id=THECHILD

-1
ответ дан 4 December 2019 в 01:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: