Weiter Zurück Inhalt

3. Constraints

In unseren Stammdaten möchten wir nur Postleitzahlen, Buchstaben sind dort falsch. In unseren Buchungen möchten wir als Typ nur 'K' oder 'D' haben, nichts anderes. Wir nutzen nun Constraints, um Falscheingaben zu verhindern.

Wird eine Spalte mit einem Contraint 'NOT NULL' belegt, muss der Wert zwingend in der Eingabe vorhanden sein, da PostgreSQL ansonsten die Werte mit einer Fehlermeldung zurückweist.

001 --
002 -- einige Constraints, um nur erwünschte Daten zu erlauben
003 --
004 
005 -- die PLZ muß aus 5 Ziffern bestehen
006 ALTER TABLE kunden ADD CONSTRAINT plz_check CHECK (plz ~ '^[0-9][0-9][0-9][0-9][0-9]$');
007 
008 -- der Typ der Buchung darf nur aus 'Z' oder 'A'
009 ALTER TABLE buchungen ADD CONSTRAINT typ_check CHECK (typ ~ '^[AZ]$');
010 
011 -- ebenfalls muss der Buchungstyp angegeben werden
012 ALTER TABLE buchungen ALTER COLUMN typ SET NOT NULL;
013 
014 -- der Wert muß ausgefüllt werden
015 ALTER TABLE buchungen ALTER COLUMN wert SET NOT NULL;
016 
017 -- und der Wert der Buchung darf nicht kleiner als 0 sein
018 ALTER TABLE buchungen ADD CONSTRAINT wert_check CHECK (wert > 0);
019 
020 
021 -- Test:
022 
023 -- PLZ mit 4 Stellen (sollte fehlschlagen)
024 INSERT INTO kunden (kundenname, plz, ort) VALUES ('Kunde 6', 1234, 'Ort 6');
Download constraints.sql

Links

CREATE TABLE


Weiter Zurück Inhalt