![]() |
Datenbank: Firebird • Version: 3.x • Zugriff über: IBDAC
Firebird Subtabelle plötzlich komplett leer
Hallo,
in einer Firebird Datenbank, die nur ich verwenden (lokal auf meinem PC) ist eine Subtabelle plötzlich komplett leer. In dem Log meiner Software ist kein "delete" SQL-Befehl seit dem Tag, an dem alle Datensätze verschwunden sind, aufgezeichnet. Wie kann so etwas entstehen? Ich kann mich nicht erinnern, dass ich auf diese Subtabelle jemals manuell SQL-Querys angewandt habe. Immer nur über die IBDAC-Komponenten einzelne Datensätze gelöscht oder hinzugefügt. Mit ATable.Insert und ATable.Delete. Fehlermeldungen gab es auch keine. Mit dem IBExpert nachgeschaut: Die Tabelle ist wirklich leer. Zum Glück hatte ich ein Backup. |
AW: Firebird Subtabelle plötzlich komplett leer
was sagt gfix zu der Datenbank? (gfix -v -full....)
Gibt es cascading Updates / Delets? Also wie sieht die Tabellenstruktur aus? |
AW: Firebird Subtabelle plötzlich komplett leer
Zitat:
Zitat:
Zitat:
Code:
CREATE GENERATOR GEN_VORGANGPOSSER_ID;
CREATE TABLE VORGANGPOSSER ( ID SMALLINT NOT NULL, VGPOSID INTEGER NOT NULL, BEZEICHNUNG VARCHAR(40), SERIENNUMMER VARCHAR(40) ); ALTER TABLE VORGANGPOSSER ADD PRIMARY KEY (ID); ALTER TABLE VORGANGPOSSER ADD CONSTRAINT FK_VORGANGPOSSER_VGPOSID FOREIGN KEY (VGPOSID) REFERENCES VORGANGPOS (ID) ON DELETE CASCADE ON UPDATE CASCADE; CREATE OR ALTER TRIGGER VORGANGPOSSER_BI FOR VORGANGPOSSER ACTIVE BEFORE INSERT POSITION 0 as begin if (new.id is null) then new.id = gen_id(gen_vorgangposser_id,1); end |
AW: Firebird Subtabelle plötzlich komplett leer
Daran könnte es liegen:
Zitat:
|
AW: Firebird Subtabelle plötzlich komplett leer
Joar, gibt ja nur ein paar Möglichkeiten
* jemand hat wirklich in der SubTabelle alles gelöscht * wenn in der HauptTabelle gelöscht wird, dann entfernt das
Delphi-Quellcode:
auch das Jeweilige in der SubTabelle
ON DELETE CASCADE
* mit
Delphi-Quellcode:
blieben diese SubDatensäte erhalten, aber die Referenz wird NULL
ON DELETE SET NULL
* bei
Delphi-Quellcode:
... heißt "nothing is done" dass die SubDatensätze unverändert da bleiben, oder wird der Hauptdatensatz dann nicht gelöscht?
ON DELETE NO ACTION
* und ohne
Delphi-Quellcode:
sollte das DELETE im Hauptdatensatz knallen, weil noch abhängige Daten vorhanden sind
ON DELETE
|
AW: Firebird Subtabelle plötzlich komplett leer
Bei NO ACTION kann der übergeordnete Datensatz nicht gelöscht werden, da sonst die referenzielle Integrität verletzt würde.
|
AW: Firebird Subtabelle plötzlich komplett leer
Zitat:
Number of record level warnings : 1 Number of pointer page warnings : 3 Was sagt das mir? |
AW: Firebird Subtabelle plötzlich komplett leer
Es ist heute wieder passiert. Wieder alle Datensätze der Subtabelle weg. Garantiert habe ich seit dem letzten mal kein SQL-Statement selbst ausgeführt. Maximal 5 Hauptdatensätze gelöscht. Kann IBDAC evtl. einen Fehler haben, dass durch das ON DELETE CASCADE dann ALLE Datensätze in der Subtabelle gelöscht werden und nicht nur die Datensätze die zu den Hauptdatensätzen gehören? Wie kann ich das sinnvoll loggen?
|
AW: Firebird Subtabelle plötzlich komplett leer
Hallo,
hast Du vielleicht Trigger drauf? |
AW: Firebird Subtabelle plötzlich komplett leer
Zitat:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:13 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 by Thomas Breitkreuz