Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Begriff Erklärung Constraints (https://www.delphipraxis.net/100333-begriff-erklaerung-constraints.html)

r3v0 26. Sep 2007 13:36

Datenbank: DB2 / MYSQL • Version: kA • Zugriff über: isieries Navigator / EMS SQL Manager

Begriff Erklärung Constraints
 
Halli Hallu,

ich habe nur ne kurze frage zu Constraints. Ich bin irgendwie zu doof um zu googlen und mir ne beschreibung von Constraints rauszusuchen. Bzw was sie machen wofür sie gut sind!

Wiki gab leider für mich auch nichts tolles her.

Danke im Vorraus
r3v0 :dp:

s-off 26. Sep 2007 13:41

Re: Begriff Erklärung Constraints
 
Hallo,

Constraints sind Bedingungen, mittels derer Du bspw. Wertebereiche einschränken kannst.

Edit: Ups, Beispiel vergessen.

Klassische Constraints sind bspw. 'primary key' (Feld ist Primärschlüssel) oder 'not null' (Feld muss gefüllt sein)

axellang 26. Sep 2007 13:42

Re: Begriff Erklärung Constraints
 
Constraints

Axel

knollix 26. Sep 2007 13:43

Re: Begriff Erklärung Constraints
 
Was meinst du, Constraints in Delphi oder in deiner Datenbank ?

Gruß knollix

r3v0 26. Sep 2007 13:44

Re: Begriff Erklärung Constraints
 
ja wiki sagt mir da überhaupt nichts! also was da steht!

Es sind einschränkungen!

Fangen die jetzt auch ab das in der Tabelle B wo der Fremdschlüssel draufzeigt der Datensatz auch vorhanden sein muss? Und das er z.B. nicht über 50 sein darf??

s-off 26. Sep 2007 13:44

Re: Begriff Erklärung Constraints
 
Zitat:

Zitat von knollix
Was meinst du, Constraints in Delphi oder in deiner Datenbank ?

Gruß knollix

Da er im Header auf 'Datenbank: DB2 / MYSQL' hinweist, wird er wohl die DB-Constraints meinen :wink:

r3v0 26. Sep 2007 13:45

Re: Begriff Erklärung Constraints
 
Oh jah Constraints in Datenbanken!

Constraints in Delphi Oo gibts sowas :P
Ne meine in datenbanken

s-off 26. Sep 2007 13:47

Re: Begriff Erklärung Constraints
 
Zitat:

Zitat von r3v0
Constraints in Delphi Oo gibts sowas :P

Klar,
z.B. TForm.Constraints - auch da sind es Einschränkungen des Wertebereichs :wink:

r3v0 27. Sep 2007 14:01

Re: Begriff Erklärung Constraints
 
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 ` ;


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:09 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz