Was ist das :
Zitat von
EnORItZ:
Hallo Leute.
Ich versuche gerade in meiner Rechnungsdaten-Tabelle doppelte eingaben eines Artikels zu vermeiden.
Die Tabelle sieht quasi so aus:
SQL-Code:
create table Rechnungen(
RechnungsID Integer,
KundenID Integer,
Datum Date
);
create table RechnungsDaten(
RechnungsID Integer,
AusleihID Integer
);
Ist RechnungsID quasi die ID des Datensatzes der Table ? Hängen die Tabellen voneinander ab ? Falls ja : wo ist dann der Verweis von einer Tabelle auf die andere ? Gehe doch systematischer vor : vergeb zunächst mal eine ID, egal für welche Tabelle. Hängt die Tabelle von einer anderenn ab, dann kriegt die eben noch eine die für den Verweis zuständig ist. Glaskugel meint so etwas :
SQL-Code:
create table Rechnungen(
ID Integer,
RECHNNR integer,
KundenID Integer,
Datum Date
);
create table RechnungsDaten(
ID Integer,
ID_Rechnungen integer, /* erhält Wert von der ID aus table Rechnungen */
AusleihID Integer
);
Den Rest hat mkinzler schon gesagt : im Prinzip wird Schadenswiedergutmachung versucht. So was lässt man aber besser von Anfang an nicht zu. Was soll aber nun gemacht werden, falls das Programm versucht, einen Datensatz einzutragen, der schon da ist ? Ich würde vorab mal sagen, daß ein Trigger der falsche Ansatz ist und das besser in einer SP aufgehoben wäre. Trigger sind gut für automatische Sachen, wie ID-Vergabe, Vorbesetzung oder automatische Änderung von Feldern. Ansonsten kann er das Programm aus den Angeln heben, denn er lauert im Hintergrund und schlägt ohne Warnung zu, sofern eine Bedingung erfüllt ist. Eine SP kann ich gesteuert aus dem eigenen Programm aus aufrufen.