peinliche frage, aber kann mir jemand sagen, wie ich mit pgAdmin III
einen primärschlüssel festlegen kann?
im pop-up menü unter "neue Spalte" und eigenschaften tabelle kann ich nichts finden!
suche schon ewig in google, aber lande keinen treffer!?
bin ich blind oder fange ich es ganz falsch an?
vielen dank!
cu
bernd
Hallo bernd,
Tabellenname anklicken ==> rechte Maustaste ==> Eigenschaften ==> Constrains ==> Hinzu ==> ...
mfg
fristo
Super!
Vielen Dank!
Bin schon ganz verzweifelt gewesen! :-)
Alles ganz einfach - wenn man weiß wie!
Danke
cu
hallo,
habe mich riesig gefreut über die einfache Lösung des primary key, doch leider klappt es bei mir nicht. ich füge unter Contrains (im Register Eigenschaften) den Namen ein, aber ich kann es nicht bestätigen. Was mach ich falsch?
ein primärschlüssel ist ja ein etwas schwammiger meist logischer begriff, der sich einer handvoll technischen dinge zuordnen laesst
er umfasst ein oder mehrere felder einer tabelle (einfacherweise beschränken wir uns auf ein feld -> ID)
das feld soll meistens automatisch generiert werden, deshalb benutzt man den datentyp serial
und er muss eindeutig sein, daher muss man ein CONSTRAINT darüber definieren.
in PGAdminIII:
1. neues feld mit datentyp Serial oder BigSerial (evtl. not null)
2. ein Primary-Key Constraint auf dieses Feld definieren
du brauchst also dort 2 Arbeitsschritte
wenn du die tabelle via DML erzeugen willst sieh es so aus
du solltest noch wissen, dass SERIAL kein echter Datentyp ist, sondern eine Art MACRO .. das dir ein INTEGER Feld erzeugt und eine SEQUENCE die als "DEFAULT" des Feldes verwendung findet -> automatisches generieren von Integer-Werten ..Code:CREATE TABLE <deine table> ( dein_id_feld SERIAL NOT NULL PRIMARY KEY, .... )
Geändert von symbiont (15.10.2009 um 15:53 Uhr)
Schritt 1 ist nicht unbedingt notwendig.
Man könnte auch einen natural primary key haben, den kann man genausogut mit einem Constraint belegen.
Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören
Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler
PostgreSQL Service & Support
ja .. ich habe ja darauf hingewiesen, dass sich das beispiel auf den gemeinten fall beschraenkt -> er will sowas wie ein ID feld ..
@Posti
was ads meint:
es gibt auch leute die "natuerliche schluessel" verwenden ... also z.B. sowas wie die Auftrag-Nr fuer den Auftrag,
dann wuerdest du das Feld AuftragNr mit PRIMARY KEY definieren ..
ein PRIMARY KEY kann sich auch ueber mehrere Felder erstrecken .. z.B. bei einer Auftrags-Position dann ueber AutragNr + PositionNr
Man sollte sich beim Design der DB auf eine Strategie festlegen ...
Geändert von symbiont (15.10.2009 um 15:59 Uhr)
Zwei Dinge:
1. ein (Primary-Key) Constraint hat immer einen Namen ..
diesen Namen hast du eingegeben (Reiter 1 - "Eigenschaften") .. wenn deine ID-Spalte z.B. id_table heisst, dann nenn den Constraint pk_id_table .. ist nur eine Empfehlung
2. dann musst du noch sagen, welche Felder zu dem Primärschlüssel gehören (Reiter 2 - "Spalten"), das ist dann sinnvoller Weise die eine ID-Spalte die du dafuer vorgesehen hast.
Das mag auf den ersten Blick umständlich sein - aber dank dem Hinweis von ads weisst du, dass Primärschlüssel über mehrere Felder gehen könnten. Die kannst du also unter Reiter 2 erledigen.
oder du machst das per DML:
dann wird automatisch ein Name fuer den Constraint vergeben .. der auch pk_id_table heisstCode:ALTER TABLE my_table ADD PRIMARY KEY (id_table, nochn_feld, usw ... );![]()
Geändert von symbiont (15.10.2009 um 19:37 Uhr)
Hallo,
mit PostgreSQL habe ich erst seit kurzem zu tun. Installation hat bestens geklappt. Zum managen nutze ich pgAdmin III.
Beim Erstellen einer Spalte mit dem Datentyp serial, welche später als inkrementieller Primärschlüssel dienen soll, ist die Erstellung von pgAdmin III mit der folgenden Meldung abgebrochen worden:
"FEHLER: Sequenz muss selben Eigentümer wie die verknüpfte Tabelle haben."
Bitte um Hilfe, wie man diese Meldung interpretiert und den Konflikt löst.
Danke.
Gruß,
Vitali
Links: Tobias Bauer - IT- und Funkdienstleistungen - Bilderrahmen-kaufen.de - Der Onlineshop für Bilderrahmen & Fotorahmen - Funkforum
Lesezeichen