AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Firebird Reihenfolge der Tabellen bei Insert mit Foreignkey
Thema durchsuchen
Ansicht
Themen-Optionen

Firebird Reihenfolge der Tabellen bei Insert mit Foreignkey

Ein Thema von Kostas · begonnen am 10. Jun 2016 · letzter Beitrag vom 14. Jun 2016
Antwort Antwort
Fritzew

Registriert seit: 18. Nov 2015
Ort: Kehl
678 Beiträge
 
Delphi 11 Alexandria
 
#1

AW: Firebird Reihenfolge der Tabellen bei Insert mit Foreignkey

  Alt 13. Jun 2016, 20:20
Wenn Foreign Keys da sind muss die Reihenfolge stimmen. Ansonsten tritt ein Fehler auf und das ist ja wohl mehr als korrekt
Fritz Westermann
  Mit Zitat antworten Zitat
Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.115 Beiträge
 
Delphi 12 Athens
 
#2

AW: Firebird Reihenfolge der Tabellen bei Insert mit Foreignkey

  Alt 13. Jun 2016, 20:20
Hallo Hansa,

ich verwende sehr intensiv referenzielle Integrität. Tabellen haben Abhängigkeiten (Foreign Keys) Als Beispiel die Tabelle BelegPos referenziert auf die Tabelle Belege. Ich kann also
nicht Belege löschen und dabei die BelegPositionen stehen lassen. Das Bedeutet auch, wenn ich Datensätze in die Datenbank inserte, muss ich zuerst die Datensätze der Tabelle Belege inserten
erst danach kann ich die Datensätze für BelePos inserten. Wenn das Datenbankschema wächst mit mehreren hundert Tabellen wird es unübersichtlich und gefährlich selbst die Tabellenreihenfolge zu
setzen.
Im meinem Fall benötige ich die Funktion für ein automatisierten Restore aus einem Backup der Datenbank.
Mein Anwender macht also ein Backup jeden Tag. Solange nichts passiert, ist alles gut. Wenn jedoch in der Datenbank durch User Fehler Daten gelöscht werden, soll es möglich sein seine aktuelle Datenbank so zu belassen wie sie ist und aus dem Backup die Fehlenden Datensätze zu rekonstruieren. Dabei ist es eben wichtig in der richtige Reihenfolge zu inserten wegen Foreign Key.

Die Funktionalität in einer StoredProc zu haben ist sehr interessant. Ich habe die StoredProc jetzt mit mehreren Datenbanken getestet und sie funktioniert einwandfrei. Was noch zu testen ist, wenn zirkulare Referenzen(Eine Tabelle referenziert sich selbst durch Foreign Key) verwendet werden.

Schöne Grüße Kostas
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#3

AW: Firebird Reihenfolge der Tabellen bei Insert mit Foreignkey

  Alt 13. Jun 2016, 21:01
Tabellen haben Abhängigkeiten (Foreign Keys) Als Beispiel die Tabelle BelegPos referenziert auf die Tabelle Belege. Ich kann also
nicht Belege löschen und dabei die BelegPositionen stehen lassen.
Das macht ja sowieso die Datenbank von selbst, sofern richtig angelegt. Und das heisst : on delete cascade Du musst der DB sagen, dass es beim Löschen eines Beleges dazu kommen soll, dass auch alle Beleg-Positionen gelöscht werden. Da braucht man gar nichts mehr selber zu machen. Man kann sogar von mir aus 50 verschachtelte Tabellen so behandeln. Und es gibt auch noch on update, on insert. Man kann also da sogar unbesezte NULL-Felder etc. mit sinnvollem Wert besetzen. Wenn ich das hier im Zusammenhang so sehe, dann denke ich, dass das Dir nicht so bekannt ist,
Gruß
Hansa
  Mit Zitat antworten Zitat
Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.115 Beiträge
 
Delphi 12 Athens
 
#4

AW: Firebird Reihenfolge der Tabellen bei Insert mit Foreignkey

  Alt 13. Jun 2016, 21:20
Hallo Hansa,

das ist mir alles durchaus bekannt. Ich habe eine Ahnung von Datenbank Design.
Was mich jedoch wundert ist, wenn Du eine Ahnung von Datenbank Design hast, warum begreifst du nicht warum ich die Reihenfolge der Tabellen benötige wenn ich erwähne das ich Foreign Keys verwende?
Andere haben es doch auch kapiert!
Sorry, vermutlich habe ich etwas übersehen zu erwähnen.

Also nochmal: Ich verwende bewusst referenzielle Integrität, ich nutze Cascade Delete wo es Sinn macht, ich nutze bei Foreign Keys immer cascade update außer wenn ich es bewusst nicht einsetze.
Bei referenzielle Integrität ist die Reihenfolge der Tabellen bei Inserts elementar wichtig.

Gruß Kostas
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:32 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz