sodale für die die es interessiert mal eine erklärung von Constraints
Zitat:
Begriff erklärung Constraint:
Eine referentielle CONSTRAINT-Definition legt eine Integritätsbedingung, der alle Zeilen zweier Tabellen genügen müssen, fest. Die dadurch definierte Abhängigkeit zwischen zwei Tabellen hat Auswirkungen auf Veränderungen, die an deren Zeilen durchgeführt werden.
Es gibt verschiedene Arten von Constraints.
-Constraint als Fremdschlüssel.
Add Constraint `Constraintname` FOREIGN KEY (`Feld in Tabelle A was zum Fremdschlüssel werden soll`) REFERENCES `Tabelle B` (`Feld in Tabelle B was im Feld der Tabelle A stehen soll`);
Hierbei ist der Constraintname nur wichtig zur Identifizierung und eventueller Löschung. Wenn der Fremdschlüssel so angelegt wird, kann er nur die Werte annehmen, die auch im Feld der Tabelle B stehen. Ist beim Anlegen des Fremdschlüssels schon der Fall, dass diese Daten nicht übereinstimmen, lässt sich der Fremdschlüssel nicht anlegen. Ein Constraint für einen Fremdschlüssel anzulegen hat den Vorteil, dass man nachher im Programm nicht überprüfen muss ob der Wert in der anderen Tabelle auch steht, dies übernimmt die Datenbank selbst.
-Constraint als Unique :
ADD CONSTRAINT `Constraintname` UNIQUE (Spaltenbezeichnung)
Hier kann es nun nicht mehr vorkommen, dass ein Wert in dieser Spalte doppelt vorhanden ist. Wieder hat es den Vorteil, dass man später im Programm nicht mehr überprüfen muss ob, der Wert schon einmal in der Spalte vorkommt.
-Constraint als CHECK
ADD CONSTRAINT `Constraintname` CHECK (Bedingung)
Bei einen Check als Constraint kann man verschiedene Bedingungen angeben.z. B.: Der Wert in der Tabelle darf nur zwischen 50 und 150 liegen. Die Bedingung sieht dann so aus: (Spalte > 50 AND Spalte < 150).
Einen Constraint löscht man im Allgemeinen so:
DROP CONSTRAINT ` Constraintname ` ;
Blub ich bin die Sig.