Einen Eintrag wieder löschen

Von Thomas Bez am 18.01.2008, aktualisiert am 10.02.2008

Weblog PedigreeAdmin <https://www.tedesca.net/PedigreeAdmin>

 

Einen Eintrag wieder zu löschen ist nicht ganz einfach, denn dadurch kann die Konsistenz der Datenbank leiden. Wenn Eintrag A auf B verweist, zum Beispiel weil A von B abstammt, kann man B nicht ohne weiteres löschen, weil dann der Verweis von A auf diesen Eintrag zerstört würde. Gäbe es also einen Eintrag BB, der tatsächlich denselben Hund meinte, nur mit einer etwas anderen Schreibweise, und wollte man B oder BB löschen, so müßte man zuerst alle Verweise zum zu löschenden Eintrag auf den anderen Eintrag umstellen. Kompliziert.

Um einen überflüssigen Hundeeintrag zu löschen, sucht man den Datenbankindex heraus. Zum Beispiel hat http://www.tedesca.org/gosdatura/pedigree/show/296.html den Index 296. Unter den Stapeländerungen müßte man also eingeben:

start
mode: delete
index: 296
end

Hier ist kein Name erlaubt, sondern nur der numerische Index. Die Stapeländerung wird verweigert, wenn dadurch ein Verweis zerstört würde. In diesem Fall müssen zuerst die Nachkommen gesucht und auf den korrekten Vorfahreneintrag umgestellt werden.

Diesen Vorgang kann die Datenbank übernehmen, man muß aber sehr darauf achten, daß man dabei nicht durcheinanderkommt. Gibt man an

start
mode: delete
index: 296
transfer: 783
end

so wird dadurch erreicht, daß überall, wo bislang Index 296 als Vorfahr auftauchte, künftig Index 783 steht. Weiterhin werden Attribute wie Rufname, Zuchtbuchnummer, Geburtsdatum und viele andere vor dem Löschen von 296 nach 783 übernommen, falls sie für 783 noch nicht gesetzt sind.

Einen überflüssigen Zwingereintrag zu löschen ist in den Stapeländerungen nicht vorgesehen, denn das ist wirklich selten nötig. Falls doch, so muß ich <bez@tedesca.net> das machen.

Besser ist es also, beim Eintragen gut aufzupassen, um Dubletten von vornherein zu vermeiden.