Hallo,
wie im Titel geschrieben benötige ich einen (denke vielleicht sogar zwei) der mit bei einer Generalisierungsbeziehung helfen soll.
Mein create Statement für die 3 betreffenden Tabellen sieht so aus:
Man sollte hier schon erkennen was ich möchte: Eine Auftragsposition kann entweder eine Sonstige Position oder eine Leistungsposition sein.
Dies möchte ich mit einem Trigger kontrollieren der vor dem update oder insert in der anderen Tabelle nachsieht, ob es schon einen Eintrag mit der Auftragsnummer (anr) und Auftragspositionsnummer (apnr) gibt.
ABER: Wie geht das? Ich kenne jetzt nur Trigger die über new and old Werte der eigenen Tabelle ansehen..
Würde mich über einen Tipp sehr freuen
LG
wie im Titel geschrieben benötige ich einen (denke vielleicht sogar zwei) der mit bei einer Generalisierungsbeziehung helfen soll.
Mein create Statement für die 3 betreffenden Tabellen sieht so aus:
Code:
CREATE TABLE APosition (
apnr INTEGER DEFAULT nextval('seq_apnr'),
anr INTEGER REFERENCES Auftrag(anr),
liefertermin DATE DEFAULT current_date,
rabatt INTEGER DEFAULT 0,
gehoert_zu_rnr INTEGER,
gehoert_zu_rpnr INTEGER,
FOREIGN KEY(gehoert_zu_rnr, gehoert_zu_rpnr) REFERENCES RPosition(rnr, rpnr),
PRIMARY KEY (anr, apnr)
);
CREATE TABLE Sonstige_Position (
anr INTEGER,
apnr INTEGER,
wert INTEGER NOT NULL CHECK (wert > 0),
beschreibung VARCHAR(40) NOT NULL,
PRIMARY KEY (anr, apnr),
FOREIGN KEY(anr, apnr) REFERENCES APosition(anr,apnr)
);
CREATE TABLE Leistungs_Position (
anr INTEGER,
apnr INTEGER,
menge INTEGER NOT NULL CHECK (menge > 0),
betrifft INTEGER REFERENCES Leistung(lnr),
PRIMARY KEY (anr, apnr),
FOREIGN KEY(anr, apnr) REFERENCES APosition(anr,apnr)
);
Man sollte hier schon erkennen was ich möchte: Eine Auftragsposition kann entweder eine Sonstige Position oder eine Leistungsposition sein.
Dies möchte ich mit einem Trigger kontrollieren der vor dem update oder insert in der anderen Tabelle nachsieht, ob es schon einen Eintrag mit der Auftragsnummer (anr) und Auftragspositionsnummer (apnr) gibt.
ABER: Wie geht das? Ich kenne jetzt nur Trigger die über new and old Werte der eigenen Tabelle ansehen..
Würde mich über einen Tipp sehr freuen
LG