Skript-Constraints.sql
Erscheinungsbild
(Einführung in SQL: Downloads: Skript-Constraints.sql)
Die Befehle auf dieser Seite manipulieren die Struktur der Beispieldatenbank durch Anlegen von UNIQUE KEYs und CHECK-Constraints. Die Anleitung steht im Anhang B Downloads.
/* UNIQUE Keys und CHECKs definieren */ ALTER TABLE Versicherungsvertrag ADD CONSTRAINT Versicherungsvertrag_Nummer UNIQUE (Vertragsnummer) USING INDEX Versicherungsvertrag_Nummer_UK, ADD CONSTRAINT Versicherungsvertrag_Art CHECK( Art = 'HP' OR Art = 'TK' OR Art = 'VK' ); ALTER TABLE Fahrzeug ADD CONSTRAINT Fahrzeug_Kennzeichen UNIQUE (Kennzeichen) USING INDEX Fahrzeug_Kennzeichen_UK; ALTER TABLE Dienstwagen ADD CONSTRAINT Dienstwagen_Kennzeichen UNIQUE (Kennzeichen) USING INDEX Dienstwagen_Kennzeichen_UK; ALTER TABLE Mitarbeiter ADD CONSTRAINT Mitarbeiter_Nummer UNIQUE (Personalnummer) USING INDEX Mitarbeiter_Nummer_UK; /* weitere J/N-Werte */ ALTER TABLE Versicherungsnehmer ADD CONSTRAINT Versicherungsnehmer_Eigener_Kunde CHECK( Eigener_Kunde = 'J' OR Eigener_Kunde = 'N' ); ALTER TABLE Schadensfall ADD CONSTRAINT Schadensfall_Verletzte CHECK( Verletzte = 'J' OR Verletzte = 'N' ); /* Die letzte Einschränkung steht hier nur der Vollständigkeit halber; sie müsste erledigt sein, als der Vorgabewert hinzugefügt wurde. */ ALTER TABLE Mitarbeiter ADD CONSTRAINT Mitarbeiter_Ist_Leiter CHECK( Ist_Leiter = 'J' OR Ist_Leiter = 'N' ); /* komplexe Bedingung */ ALTER TABLE Versicherungsnehmer ADD CONSTRAINT Versicherungsnehmer_Person CHECK( ( Geschlecht IS NULL ) OR ( Vorname IS NOT NULL AND Geburtsdatum IS NOT NULL AND Fuehrerschein IS NOT NULL AND Fuehrerschein >= Geburtsdatum + 365*16 ) ); COMMIT;