haben Wie kann ich von einem Stammsatz beschränken löschen, wenn sie Kinder in einer Firebird-Datenbank haben.von Stammsatz löschen, wenn sie Kinder
Antwort
Sie benötigen einen Fremdschlüssel aus der untergeordneten Tabelle auf der übergeordneten Tabelle hinzuzufügen. Das Standardverhalten eines Fremdschlüssels verhindert das Löschen von Datensätzen aus der übergeordneten Tabelle, wenn untergeordnete Datensätze vorhanden sind.
Zum Beispiel
create table parent (
id integer generated by default as identity primary key
);
create table child (
id integer generated by default as identity primary key,
parent_id integer references parent(id)
);
Dies wird Ihnen auch mit parent_id
Werte (außer null
) von Hinzufügen von Datensätzen auf das Kind verhindern, die in parent
nicht existieren. Sie können das Verhalten der Fremdschlüsselbedingung mithilfe der Klauseln on update
und on delete
weiter modifizieren. Siehe die Firebird Sprachreferenz auf constraints. Wenn Sie beispielsweise on delete cascade
verwenden, werden Zeilen aus der untergeordneten Tabelle gelöscht, wenn der übergeordnete Datensatz gelöscht wird.
Ein Fremdschlüssel kann nur bis zu einem Primärschlüssel oder einen einzigartigen Schlüssel verweisen.
Der obige Code ist absichtlich kurz, Sie sollten die Verwendung von benannten Einschränkungen für Primär- und Fremdschlüsselbeschränkungen in Betracht ziehen, da dies die zukünftige Wartung vereinfacht, überprüfen Sie die language reference für Details.
- 1. Alle Kinder von QVBoxLayout löschen
- 2. Entfernen Sie übergeordnete, wenn keine Kinder
- 3. jQuery Löschen von div Kinder außer einem
- 4. Löschen der Kinder Modelle automatisch
- 5. Vermeiden Löschen Kinder Objekte - Realm
- 6. Löschen xdt-Element, wenn es keine Kinder hat
- 7. Rails, Löschen Kinder ohne Eltern Löschen verwenden: has_many
- 8. Wie kann ich einen Stammsatz von 3 möglichen Kind Rekordwerte zurück, wo der Stammsatz alle 3 Kind enthalten müssen Werte
- 9. alle Kinder in Array-Objekte löschen
- 10. nhibernate nicht kaskadieren nicht löschen Kinder
- 11. Zwei Kinder löschen auf einem Binärbaum
- 12. Entfernen Kinder von Array innerhalb Scroll löschen immer letztes Element
- 13. Löschen Sie keine Impressions, wenn Sie einen Datensatz löschen
- 14. Löschen einer Sammlung von Sammlungen - Löschen Sie alle Elemente zuerst oder löschen Sie alle auf einmal?
- 15. Erhalten Sie Kinder von den Eltern Sequelize
- 16. Vue.js verwenden Slot von Kinder Kinder
- 17. Schienen has_many Assoziationen löschen Elternobjekt, aber nicht Kinder
- 18. Vermeiden Sie zusätzliche Kinder Firebase
- 19. Javascript Zeigen Kinder mit Nav-Link, wenn Sie klicken
- 20. Wählen Sie alle ersten Kinder
- 21. Reagieren Ereignis mouseenter funktioniert nicht, wenn sie auf kartiert Kinder
- 22. Kinder zentrieren, wenn sie nicht das Elternteil passen
- 23. Wählen Sie Eltern, wenn alle Kinder erfüllen Kriterien
- 24. wie routerLink zu verwenden, wenn Sie mehrere Kinder verwenden?
- 25. Wählen Sie Kinder hängt von Eltern Wählen Sie
- 26. Winapi Kinder von MFC-Fenster
- 27. Löschen Timeouts im Array, wenn sie existieren
- 28. Referenzielle Integrität: Alle Kinder löschen, aber nicht den übergeordneten [PostgreSQL]
- 29. Flexbox Kinder Kinder Überlauf
- 30. Wenn Sie auf Listenansicht klicken, löschen Sie es und löschen Sie damit verbundene Daten in Firebase
Fremdschlüssel hinzufügen. – lad2025