Entwickler-Ecke

Datenbanken - [Firebird] NOT NULL bei einem von zwei Feldern ?


funcry - Sa 20.10.07 18:45
Titel: [Firebird] NOT NULL bei einem von zwei Feldern ?
Gibt es die Möglichkeit eine Firebird 2.0 Tabelle so zu erstellen, dass bei zwei Feldern gewährleistet ist, dass eines davon NOT NULL ist ?

Beispiel:


SQL-Anweisung
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
CREATE TABLE "VM_ADRESSEN"
(
  "ID" BIGINT NOT NULL,

  "ID_VERPACKUNGSMITTEL" BIGINT NOT NULL,
  "TN" BIGINT NOT NULL,

  "NR_KUNDE" BIGINT,
  "NR_LIEFERANT" BIGINT,

CONSTRAINT "PK_VM_ADRESSEN" PRIMARY KEY ("ID")
);


NR_KUNDE oder NR_LIEFERANT müssen gefüllt sein.


mkinzler - Sa 20.10.07 20:20

Sollte mit Hilfe eines CHECK-Contraints gehen.


funcry - Sa 20.10.07 22:53

Danke für den Hinweis, das um diesen Befehl erweiterte SQL-Skript:


SQL-Anweisung
1:
ALTER TABLE "VM_ADRESSEN" ADD CHECK ("NR_KUNDE" IS NOT NULL OR "NR_LIEFERANT" IS NOT NULL);                    


führt den Check jetzt aus.