Hallo Leute,
ich hab jetzt hier ein kleines Problem und ich hoffe, Ihr könnt mir helfen.
Ich habe zwei Tabellen, die nachträglich mit FOREIGN KEY verknüpft werden sollen. Wenn ich jetzt aber aus der ersten Tabelle Daten löschen möchte und in der zweiten Tabelle noch verknüpfte Daten vorhanden sind, tritt natürlich ein Fehler auf.
Das Problem ist, die Daten werden über ein Programm gelöscht, dessen Source-Code ich nicht ändern kann. Hier mal ein Beispiel
Die Tabellen:
CREATE TABLE Artikelliste(ID number primary key, Bezeichnung VARCHAR(250) ...
CREATE TABLE Seriennummern(ID number primary key, Artikel BIGINT, Seriennummer VARCHAR(150) ...
Die Verknüpfung
ALTER TABLE Seriennummern ADD FOREIGN KEY (Artikel) REFERENCES Artikelliste(ID)
Das hab ich von einem Entwickler des Programmes, das wir hier verwenden ... leider ist das nur eine inoffizielle Mitteilung ... der Code im Programm wird sicher nicht geändert.
Das Löschen der Artikel würde dann so funkionieren:
DELETE Artikelliste WHERE ID = xx
DELETE Seriennummern WHERE Artikel = xx
Das funktioniert aber nach dem Erstellen der Referenz nicht mehr. Der Datensatz aus der Tabelle Artikelliste kann nicht gelöscht werden, weil noch Datensätze in der Tabelle Seriennummern vorhanden sind.
Die Referenz füge ich manuell hinzu um eine Replikation der Datenbank zu ermöglichen (ohne Referenz weiß ich ja nicht, welche Seriennummer zu welchem Artikel gehört ... außer ich mache die ganze Replikation manuell, aber da wäre der Aufwand zu groß).
Gibt es eine Möglichkeit, eine Referenz zwischen den beiden Tabellen nachträglich zu erstellen, die die Daten in der Tabelle Seriennummern automatisch löscht, sobald ein Datensatz in der Tabelle Artikelliste gelöscht wird?
Danke schon mal,
Markus
ich hab jetzt hier ein kleines Problem und ich hoffe, Ihr könnt mir helfen.
Ich habe zwei Tabellen, die nachträglich mit FOREIGN KEY verknüpft werden sollen. Wenn ich jetzt aber aus der ersten Tabelle Daten löschen möchte und in der zweiten Tabelle noch verknüpfte Daten vorhanden sind, tritt natürlich ein Fehler auf.
Das Problem ist, die Daten werden über ein Programm gelöscht, dessen Source-Code ich nicht ändern kann. Hier mal ein Beispiel
Die Tabellen:
CREATE TABLE Artikelliste(ID number primary key, Bezeichnung VARCHAR(250) ...
CREATE TABLE Seriennummern(ID number primary key, Artikel BIGINT, Seriennummer VARCHAR(150) ...
Die Verknüpfung
ALTER TABLE Seriennummern ADD FOREIGN KEY (Artikel) REFERENCES Artikelliste(ID)
Das hab ich von einem Entwickler des Programmes, das wir hier verwenden ... leider ist das nur eine inoffizielle Mitteilung ... der Code im Programm wird sicher nicht geändert.
Das Löschen der Artikel würde dann so funkionieren:
DELETE Artikelliste WHERE ID = xx
DELETE Seriennummern WHERE Artikel = xx
Das funktioniert aber nach dem Erstellen der Referenz nicht mehr. Der Datensatz aus der Tabelle Artikelliste kann nicht gelöscht werden, weil noch Datensätze in der Tabelle Seriennummern vorhanden sind.
Die Referenz füge ich manuell hinzu um eine Replikation der Datenbank zu ermöglichen (ohne Referenz weiß ich ja nicht, welche Seriennummer zu welchem Artikel gehört ... außer ich mache die ganze Replikation manuell, aber da wäre der Aufwand zu groß).
Gibt es eine Möglichkeit, eine Referenz zwischen den beiden Tabellen nachträglich zu erstellen, die die Daten in der Tabelle Seriennummern automatisch löscht, sobald ein Datensatz in der Tabelle Artikelliste gelöscht wird?
Danke schon mal,
Markus
Comment