|
Ошибка при попытке создания foreign key в IBExpert
|
|||
---|---|---|---|
#18+
При попытке выполнения следующего кода Код: plaintext 1. 2. 3. 4. 5.
Невозможно подтвердить транзакцию: violation of FOREIGN KEY constraint "". violation of FOREIGN KEY constraint "***unknown***" on table "WAREH". ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2006, 14:29 |
|
Ошибка при попытке создания foreign key в IBExpert
|
|||
---|---|---|---|
#18+
Ну так не может его создать потому как прям в процессе создания находятся записи, ему не соответствующие. А имени ключа назвать не может потому как ещё не создал :) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2006, 14:35 |
|
Ошибка при попытке создания foreign key в IBExpert
|
|||
---|---|---|---|
#18+
Amris MirddinНу так не может его создать потому как прям в процессе создания находятся записи, ему не соответствующие. А имени ключа назвать не может потому как ещё не создал :) Это как-то лечиться? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2006, 14:37 |
|
Ошибка при попытке создания foreign key в IBExpert
|
|||
---|---|---|---|
#18+
WWWovan Amris MirddinНу так не может его создать потому как прям в процессе создания находятся записи, ему не соответствующие . А имени ключа назвать не может потому как ещё не создал :) Это как-то лечиться? какое слово тебе непонятно? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2006, 14:39 |
|
Ошибка при попытке создания foreign key в IBExpert
|
|||
---|---|---|---|
#18+
WWWovan Это как-то лечиться? Ручаться не могу, но вообще-то психиатрия, особенно на Западе, в последнее время достигает неплохих результатов. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2006, 14:44 |
|
Ошибка при попытке создания foreign key в IBExpert
|
|||
---|---|---|---|
#18+
srf2000 какое слово тебе непонятно? Слова, то понятны все. Не понятно как исправить положение... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2006, 14:46 |
|
Ошибка при попытке создания foreign key в IBExpert
|
|||
---|---|---|---|
#18+
Amris Mirddin Ручаться не могу, но вообще-то психиатрия, особенно на Западе, в последнее время достигает неплохих результатов. Смешно. :-) Но мне бы все-таки хотелось исправить ошибку... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2006, 14:47 |
|
Ошибка при попытке создания foreign key в IBExpert
|
|||
---|---|---|---|
#18+
> Но мне бы все-таки хотелось исправить ошибку... привести данные в соответсвие с желаемой схемой. Posted via ActualForum NNTP Server 1.3 ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2006, 14:51 |
|
Ошибка при попытке создания foreign key в IBExpert
|
|||
---|---|---|---|
#18+
Kull Damned> привести данные в соответсвие с желаемой схемой. Тогда может посоветуете как? Несоответствие(если я правильно понял) состоит в наличие в поле PARENTID значения "0", которое отсутствует в ID... "0" - это корень дерева... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2006, 14:58 |
|
Ошибка при попытке создания foreign key в IBExpert
|
|||
---|---|---|---|
#18+
[/quot] Тогда может посоветуете как? Несоответствие(если я правильно понял) состоит в наличие в поле PARENTID значения "0", которое отсутствует в ID... "0" - это корень дерева...[/quot] Так и заведи значение "0" - "Корень дерева" или "Не указано" или ... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2006, 15:01 |
|
Ошибка при попытке создания foreign key в IBExpert
|
|||
---|---|---|---|
#18+
Dimano Так и заведи значение "0" - "Корень дерева" или "Не указано" или ...[/quot] Спасибо. Помогло... Я в пинципе и сам так подумал... но боялся что при такй вставке возникнут проблемы в других местах... Сейчас посмотрим.. Всем спасибо за помощь. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2006, 15:05 |
|
Ошибка при попытке создания foreign key в IBExpert
|
|||
---|---|---|---|
#18+
И боязнь была не напрасной... Проблемы возникли... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2006, 15:16 |
|
Ошибка при попытке создания foreign key в IBExpert
|
|||
---|---|---|---|
#18+
Все разобрался. Извините за безпокойство. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2006, 15:38 |
|
Ошибка при попытке создания foreign key в IBExpert
|
|||
---|---|---|---|
#18+
Обычно для корня дерева PARENTID устанавливают в NULL Posted via ActualForum NNTP Server 1.3 ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2006, 15:39 |
|
Ошибка при попытке создания foreign key в IBExpert
|
|||
---|---|---|---|
#18+
а еще обычней не делают on update/delete cascade :-) в общем, я не знаю тонкостей, и уже давно древовидными структурами не занимался, но мнится мне, что не надо бы каскадное обновление-удаление на деревянную структуру. Тем более, что update cascade само по себе порочно и наказуемо. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2006, 15:50 |
|
Ошибка при попытке создания foreign key в IBExpert
|
|||
---|---|---|---|
#18+
Обычно для корня дерева PARENTID устанавливают в NULL кстати, нафига, позволю себе спросить? Конечно, это дело вкуса и все такое, использовать null или 0 как parent у корневых элементов. Но как бы, нет null - нет гемора. Не так ли? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2006, 16:05 |
|
Ошибка при попытке создания foreign key в IBExpert
|
|||
---|---|---|---|
#18+
жалко что редактировать свои сообщения нельзя. я уже озвучивал ситуацию с этими null. 1. если делать fk, то parentid не может указывать на 0, если нет записи id = 0 parentid = 0. 2. запись id = 0 parentid=0 фактически "зацикл". если не учитывать id > 0 то могут быть проблемы при переборе дерева. 3. parentid = null позволяет построить fk с id на parentid. НО. parentid не должен быть объявлен как not null. 4. при выборке корневых элементов надо писать where parent_id is null, в то время как для всех остальных - where parentid = :param. лично мне не нравятся пункты 3 и 4. в системах делал parentid = 0, проблем не имел. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2006, 16:10 |
|
Ошибка при попытке создания foreign key в IBExpert
|
|||
---|---|---|---|
#18+
Изначально все началось с необходимости изменять свойства группы(ID) вместе со всеми подгруппами. Для этого необходимо извлечь из списка все узлы некоторого поддерева. Информация которая меня натолкнула на такие подвиги находиться в статье _http://gsbelarus.com/gs/modules.php?name=News&file=article&sid=314 Первый метод из тех которые там описаны наиболее подходящий для моей базы. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2006, 16:17 |
|
Ошибка при попытке создания foreign key в IBExpert
|
|||
---|---|---|---|
#18+
авторнеобходимости изменять свойства группы(ID) вместе со всеми подгруппами я не понял, при чем тут update cascade. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2006, 16:31 |
|
Ошибка при попытке создания foreign key в IBExpert
|
|||
---|---|---|---|
#18+
kdv я не понял, при чем тут update cascade. update cascade используеться в решение которое приведенов в статье(ссылка выше). Вот я и делал согласно предложеному в статье варианту... Если есть решение лучше - буду очень благодарен... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2006, 16:33 |
|
Ошибка при попытке создания foreign key в IBExpert
|
|||
---|---|---|---|
#18+
то есть думать самостоятельно не хочется. Copy/Paste? что такое ON UPDATE CASCADE в FK? Это автоматическое обновление столбца связи у деталей (в данном случае parentid) при изменении первичного ключа мастера. Кто в здравом уме меняет значение первичного ключа у записей? Почти никто. что такое ON DELETE CASCADE в FK? это автоматическое удаление деталей (в данном случае записей с parentid) при удалении записи в мастере. Кто разрешает автоматически удалять детали при удалении мастера? Да почти никто. Уж слишком опасная эта штука. Причем зачастую бессмысленная. Допустим, мы поставим авто-удаление между таблицами заказы-клиенты. Значит, при удалении клиента удалятся все заказы? Зашибись. То есть, отчет по продажам мы уже правильно не сформируем. В ряде систем и удаления-то нет как такового. Только "пометка на удаление", или "виртуальное удаление". В случае дерева, каскадное удаление означает вообще супер-удаление, то есть гроханье всей ветки от корня до листьев. Как представил, меня аж тряхнуло... :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2006, 16:43 |
|
Ошибка при попытке создания foreign key в IBExpert
|
|||
---|---|---|---|
#18+
kdvто есть думать самостоятельно не хочется. Copy/Paste? что такое ON UPDATE CASCADE в FK? Это автоматическое обновление столбца связи у деталей (в данном случае parentid) при изменении первичного ключа мастера. Кто в здравом уме меняет значение первичного ключа у записей? Почти никто. что такое ON DELETE CASCADE в FK? это автоматическое удаление деталей (в данном случае записей с parentid) при удалении записи в мастере. Кто разрешает автоматически удалять детали при удалении мастера? Да почти никто. Уж слишком опасная эта штука. Причем зачастую бессмысленная. Допустим, мы поставим авто-удаление между таблицами заказы-клиенты. Значит, при удалении клиента удалятся все заказы? Зашибись. То есть, отчет по продажам мы уже правильно не сформируем. В ряде систем и удаления-то нет как такового. Только "пометка на удаление", или "виртуальное удаление". В случае дерева, каскадное удаление означает вообще супер-удаление, то есть гроханье всей ветки от корня до листьев. Как представил, меня аж тряхнуло... :-) Послушавшись Вашего совета, вообще удалил FK и запись с значениями 0 - 0(точнее 0 - 364 как я ее потом изменил)... То что нужно все равно работает! Спасибо за дельные советы! ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2006, 17:18 |
|
Ошибка при попытке создания foreign key в IBExpert
|
|||
---|---|---|---|
#18+
kdvчто такое ON UPDATE CASCADE в FK? Это автоматическое обновление столбца связи у деталей (в данном случае parentid) при изменении первичного ключа мастера. Кто в здравом уме меняет значение первичного ключа у записей? Почти никто. Использовал этот фокус для проверки и обновления значения копии поля мастера, дублирующегося у детали. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2006, 17:36 |
|
Ошибка при попытке создания foreign key в IBExpert
|
|||
---|---|---|---|
#18+
Sextonто трудно заставить себя ее не использовать, тем более, когда не понимаешь, почему нельзя. первичный ключ могут менять только если он "естественный". Если он "искуственный" (или суррогатный), то его меняют разве что в экстренных случаях, и обычно вручную, а не из клиентских приложений. Так что и про "обновление, конечно, можно и на триггерах" я того же мнения. Я пытаюсь донести мысль, что искуственный ПК не меняют, независимо от того, ссылается на него кто-нибудь, или нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2006, 17:52 |
|
Ошибка при попытке создания foreign key в IBExpert
|
|||
---|---|---|---|
#18+
kdv первичный ключ могут менять только если он "естественный". Если он "искуственный" (или суррогатный), то его меняют разве что в экстренных случаях, и обычно вручную, а не из клиентских приложений. Так что и про "обновление, конечно, можно и на триггерах" я того же мнения. Я пытаюсь донести мысль, что искуственный ПК не меняют, независимо от того, ссылается на него кто-нибудь, или нет. Безусловно. В моем примере ID1 является искуственным неизменяемым ключем, а FIELD1 обычным (не ключевым) не пустым (not NULL забыл) изменяемым полем. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2006, 18:23 |
|
|
start [/forum/topic.php?fid=42&fpage=41&tid=1600004]: |
0ms |
get settings: |
11ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
33ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
132ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 225ms |
0 / 0 |