firebird trigger? before delete



  • hi zusammen,

    Also ich programmiere mit eine anwendung mit einer firebird-db.
    Und habe über trigger und generatoren ein selbsterhöhendes id-Feld erstellt
    (obwohl ich nicht richtig verstanden habe wie es wirklich funktioniert 😃 )

    Und jetzt frage ich mich wie man realisieren kann, dass nach löschen eines Eintrags quasi alle Einträge über dem gelöschten angepasst werden, dass keine Lücken entstehen.? Ich habe im Internet gesucht aber so gut wie keine aussagekräftige
    informationen(dokumentationen) über trigger/generatoren-programmierung gefunden.

    mfg
    mcd



  • !mcd! schrieb:

    hi zusammen,

    Also ich programmiere mit eine anwendung mit einer firebird-db.
    Und habe über trigger und generatoren ein selbsterhöhendes id-Feld erstellt
    (obwohl ich nicht richtig verstanden habe wie es wirklich funktioniert 😃 )

    Und jetzt frage ich mich wie man realisieren kann, dass nach löschen eines Eintrags quasi alle Einträge über dem gelöschten angepasst werden, dass keine Lücken entstehen.? Ich habe im Internet gesucht aber so gut wie keine aussagekräftige
    informationen(dokumentationen) über trigger/generatoren-programmierung gefunden.

    mfg
    mcd

    Hallo,
    das ist doch eigentlich egal ob du eine Lücke in deiner ID hast oder nicht. Die hauptsache ist, dass der Datensatz nur einmal vorkommt.
    Wenn du dann noch mehrere Tabellen hättest wo untereinander verknüpft sind, müsstest du überall diese ID ändern, was sehr Performance lastig wäre.



  • ja du hast eigentlich recht, aber es ist irgendwie kein gutes Gefühl zu wissen,
    dass da Lücken sind. eas kommt einem nicht mehr so geordnet vor 😃



  • So ein Vorhaben ist bei kleinen Datenbanken unnötig, bei großen, mit vielen Verknüpfungen, katastrophal.



  • Kann mich meinen Vorrednern nur anschließen. Lieber Lücken im ID-Kreis, als eine inkonsistente Datenbank zu riskieren.
    Wenn Du eine fortlaufenden Nummer möchtest, füge Dir lieber ein weiteres Feld in der Tabelle ein, welches Du dafür verwendest. Aber auch hier ist, bei einer Multiuserdatenbank, die potentielle Schwachstelle, dass irgendeiner der zu ändernden Datensätze bereits von einem weiteren User in Bearbeitung ist...



  • okey, okey ihr habt gewonnen 😃


Anmelden zum Antworten