Datensätze konsequent löschen

Hallo,

Was muß ich tun, damit ein Datensatz komplett gelöscht wird? D.h. auch die angeschlossenen Daten in anderen Tabellen.

Ich habe zwar in der Beziehung die „Löschweitergabe“ angeklickt, dennoch, bleiben die Daten.

Dario

Hallo,

Was muß ich tun, damit ein Datensatz komplett gelöscht wird?
D.h. auch die angeschlossenen Daten in anderen Tabellen.

Ich habe zwar in der Beziehung die „Löschweitergabe“
angeklickt, dennoch, bleiben die Daten.

Hallo Seawolf,

das funktioniert … aber nur von Master zu Detail, andersherum nicht. Wenn du also z.B. in einer Stammdatentabelle einen Ort/Artikel oder sonst was rauswirfst, werden Detaildatensätze (z.B. Bestellungen) mitgelöscht, die diesen Wert als Fremdschlüssel enthalten (mit dieser Option sollte man aber meiner Meinung nach sparsam umgehen). Durch entfernen eines Detaildatensatzes kannst du aber nicht das Stammdatum löschen (das ja in x weiteren Tabellen und DS enthalten sein kann). Das könnte fatale Inkonsistenzen in der DB zur Folge haben.

Steffen

naja - Master/Detail - muß man das extra noch einstellen?

naja - Master/Detail - muß man das extra noch einstellen?

Nö, Mastertabelle ist die hierarchisch höher stehende, also die „1“-Seite einer 1:N-Beziehung

S.

nu genau - hab ich ja auch so.

Also 1:n-Beziehung
Die Felder in der Beziehung sind alle markiert.

Und dennoch bleiben die Details wo sie sind.

Ich habe es eben nochmal probiert. Tut einwandfrei, egal, ob du den Datensatz direkt in der Tabelle löschst oder über ein Formular. Es kommt noch ganz artig eine Warnmeldung, dass alle Detail-DS mitgelöscht werden …

S.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

hm, das kann doch nicht sein. Was mach ich da verkehrt.

Ansatz: Kann das auch daran liegen, das mehrere Tabellen auf diese Ortschaften zugreifen und diese Beziehung haben? (Natürlich habe ich überprüft, dass der Ort nur in der einen Master-Tabelle vorkommt - bin ja nich blöd :smile:

Vielleicht reden wir aneinander vorbei. Ich habe es so verstanden:

  • In der Tabelle Ort stehen (wenn möglich redundanzfrei :smile:) die Ortschaften
  • Der Primärschlüssel der Tabelle Ort ist Fremdschlüssel in der Haupttabelle, jeder Ort kann also in der Haupttabelle in beliebig vielen DS vorkommen
  • Tabelle Ort ist in diesem Fall die Mastertabelle, die Haupttabelle die Detailtabelle, zwischen den Tabellen existiert also eine 1:N-Beziehung
  • Wenn bei dieser Beziehung Löschweitergabe angekreuzt ist und du einen Datensatz in der Tabelle Ort löschst, fliegen alle DS in der Haupttabelle raus, die auf diesen Ort referenzieren (es sei denn, es gibt zur Haupttabelle weitere Detailtabellen und in diesen Beziehungen ist Löschweitergabe nicht angekreuzt)

Steffen

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

jetzt sehe ich das Problem - die 1:N ist verkehrt rum!

Also streng genommen, habe ich eine 1:1-Beziehung, da die Daten nur der Übersichtlichkeit der Tabelle raus genommen sind.

Die wirklichen 1:N funktionieren auch.

Jetzt ist also die Frage, wie bekomme ich die 1:N-Behziehung zur N:1 oder zur 1:1-Beziehung.

Denn das ist gar nicht gut, wenn sich da Daten ansammeln von Datensätzen die gar nicht mehr existieren.

Danke soweit erstmal.

(Ich lade dich mal auf ein Bier ein. :smile:

Die Orte sind natürlich keineswegs redundanzfrei. Was aber daran liegen kann (wie mir mitlerweile aufgegangen ist), dass er aus Haupttabelle A einen Ort anlegt und aus Haupttabelle B einen neuen, weil dem… ach - das ist eigentlich auch Quatsch… egal jetzt

Meine Orte haben Redundanzen, was so schlimm auch nicht ist, weil sich fast alle Orte unterscheiden.

Viel wichtiger: Es ist genauso wie du das sagst, aber das ist Mist.

Ich bin ja nicht der spätere Nuter der DB, der das wüste. Sondern User XYZ haut einen Haupttabelleneintrag raus und nicht einen Ort.
Also brauch ich das genau andersrum.