Forum: PC-Programmierung Für was ist ein Constraint gut


von SQL (Gast)


Lesenswert?

Hallo
Für was braucht man bei SQL einen Constraint

zB

von John S. (linux_80)


Lesenswert?

Hi,

ich glaub das ist fast das falsche Unterforum ;-)

Constraints gehören dazu, dass in eine Tabelle einzufügende Daten 
geprüft werden, zB. ob ein Feld NULL sein darf, oder nicht.

zB:
http://www.datenbank-sql.de/oracle-constraints.htm

von Markus V. (valvestino)


Lesenswert?

Etwas allgemeiner ausgedrückt: Constraints werden dazu benutzt, um die 
Integrität einer Datenbank zu gewährleisten.

Das Beispiel von Tiny 80 ist ein Constraint auf Feldebene. Eine andere 
Form von Constraints verhindert z.B, daß ein Datensatz gelöscht wird, 
wenn andere Datensätze diesen noch Referenzieren.

Es gibt noch weitere Constraints wie z.B. Unique-Key-Constraints, ...

Gruß
Markus

von SQL (Gast)


Lesenswert?

Hi
ist klar aber ich verstehe den Unterschied hier nicht


CREATE TABLE PERSON
(
PNR NUMBER(4) NOT NULL,

PRIMARY KEY (PNR),

);

CREATE TABLE PERSON
(
PNR NUMBER(4) NOT NULL,

constraint pnr_id primary key (PNR),

);
Danke

von FBI (Gast)


Lesenswert?

Hi,

siehe z.B. hier: 
http://www.postgresql.org/docs/8.3/static/sql-createtable.html
1
CONSTRAINT constraint_name
2
3
    An optional name for a column or table constraint. ...

Oder kurz: Im zweiten Beispiel sind die Schlüsselwörter klein 
geschrieben und der Constraint bekommt zusätzlich explizit einen Namen. 
Im ersten Fall wird der Name für den Constraint implizit durch das DBMS 
vergeben (oder er hat halt gar keinen Namen, je nach DBMS). Funktionell 
sind beide Beispiele identisch.
Wozu das Ganze? Nun bei einer Constraint-Verletzung taucht der Name 
normalerweise in der Fehlermeldung mit auf. Dadurch läßt sich das 
Problem meist leichter lokalisieren.

CU FBI

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.