Index und Primary Key

Allgemeines zu PostgreSQL.

Index und Primary Key

Beitragvon CaptnUnterhose » Fr 20. Jul 2012, 09:39

Tach und einen sonnigen Gruß,

ich möchte nur folgendes Wissen: mir hat ein Vögelchen gezwitschert, dass die Erstellung eines Unique Index gleichbedeutend mit einem Primary Key sein soll. Ist das wirklich an dem?

Und bitte: einfach ein knackiges Ja oder Nein. Kein Zerreden oder lustig machen. Danke

Gruß
CaptnUnterhose
Geht nicht, gibts nicht. Aber gibts nicht geht.
CaptnUnterhose
Neuer Benutzer
 
Beiträge: 19
Registriert: Mi 2. Mai 2012, 14:19
Wohnort: Stralsund

Beitragvon akretschmer » Fr 20. Jul 2012, 09:41

CaptnUnterhose hat geschrieben:Tach und einen sonnigen Gruß,

ich möchte nur folgendes Wissen: mir hat ein Vögelchen gezwitschert, dass die Erstellung eines Unique Index gleichbedeutend mit einem Primary Key sein soll. Ist das wirklich an dem?

Und bitte: einfach ein knackiges Ja oder Nein. Kein Zerreden oder lustig machen. Danke

Gruß
CaptnUnterhose


Nein.

Andreas
--
ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)

https://www.xing.com/profile/Andreas_Kretschmer7
Hosting-Provider mit PostgreSQL-Support gesucht? Mich fragen!
akretschmer
Erfahrener Benutzer
 
Beiträge: 5954
Registriert: So 29. Okt 2006, 14:35
Wohnort: Kaufbach, Sachsen, Germany, Germany

Beitragvon CaptnUnterhose » Fr 20. Jul 2012, 09:43

Guten Morgen Andreas,

herzlichen Dank für die sehr schnelle und präzise Antwort.

Gruß
Michael
Geht nicht, gibts nicht. Aber gibts nicht geht.
CaptnUnterhose
Neuer Benutzer
 
Beiträge: 19
Registriert: Mi 2. Mai 2012, 14:19
Wohnort: Stralsund

Beitragvon castorp » Fr 20. Jul 2012, 10:04

Um es etwas ausführlicher zu machen:

Ein Primary Key wird technisch durch einen Unique Index "abgesichert". Wenn Du also einen PK anlegst wird automatisch ein Uniqe Index angelegt. Vielleicht meinte Dein "Vögelchen" das.

Das Gleiche gilt für einen Unique Constraint. Dieser wird auch durch einen Unique Index abgesichert.
Eine Tabelle kann genau einen Primary Key haben, aber beliebig viele Unique Constraints.

Der Unterschied zwischen einem Unique Constraint und einem Unique Index ist, dass der Unique Constraint Ziel eines Foreign Key Constraints sein kann, der Unique Index aber nicht.
A SQL query walks into a bar and sees two tables. He walks up to them and says 'Can I join you?'
castorp
Erfahrener Benutzer
 
Beiträge: 676
Registriert: Sa 27. Jun 2009, 22:24

Beitragvon akretschmer » Fr 20. Jul 2012, 10:21

castorp hat geschrieben:
Der Unterschied zwischen einem Unique Constraint und einem Unique Index ist, dass der Unique Constraint Ziel eines Foreign Key Constraints sein kann, der Unique Index aber nicht.



Es gibt noch einen Unterschied:

Code: Alles auswählen
test=# create table unterhose (id int primary key);
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index "unterhose_pkey" for table "unterhose"
CREATE TABLE
test=*# insert into unterhose values (null);
ERROR:  null value in column "id" violates not-null constraint
DETAIL:  Failing row contains (null).
test=*# rollback;
ROLLBACK
test=# create table unterhose (id int unique);
NOTICE:  CREATE TABLE / UNIQUE will create implicit index "unterhose_id_key" for table "unterhose"
CREATE TABLE
test=*# insert into unterhose values (null);
INSERT 0 1


Andreas
--
ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)

https://www.xing.com/profile/Andreas_Kretschmer7
Hosting-Provider mit PostgreSQL-Support gesucht? Mich fragen!
akretschmer
Erfahrener Benutzer
 
Beiträge: 5954
Registriert: So 29. Okt 2006, 14:35
Wohnort: Kaufbach, Sachsen, Germany, Germany

Beitragvon CaptnUnterhose » Fr 20. Jul 2012, 12:00

Mahlzeit zusammen,

besten Dank für die Zusammenfassung.

Greetz
Geht nicht, gibts nicht. Aber gibts nicht geht.
CaptnUnterhose
Neuer Benutzer
 
Beiträge: 19
Registriert: Mi 2. Mai 2012, 14:19
Wohnort: Stralsund


Zurück zu Allgemeines

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste