it-swarm.com.de

Wie gebe ich an, dass eine Spalte in pgAdmin automatisch inkrementiert werden soll?

Ich habe begonnen, pgAdmin III zum Verwalten einer PostgreSQL-Datenbank zu lernen. Aber es war keine einfach zu bedienende Anwendung.

Wenn ich mit pgAdmin III eine Tabelle erstelle oder erstellt habe, wie kann ich einer Spalten-ID mit Typ-Ganzzahl die Funktion "Auto-Inkrement" hinzufügen?

15
Jonas

zwei Optionen: Verwenden Sie den "Datentyp" SERIAL oder erstellen Sie eine Sequenz und verwenden Sie diese Sequenz als Standardwert für Ihre Ganzzahl:

CREATE SEQUENCE your_seq;
CREATE TABLE foo(
  id int default nextval('your_seq'::regclass),
  other_column TEXT
);
INSERT INTO foo(other_column) VALUES ('bar') RETURNING *;
17
Frank Heikens

Wenn Sie dies in PGAdmin tun möchten, ist dies viel einfacher als die Verwendung der Befehlszeile. Um in PostgreSQL ein automatisches Inkrement zu einer Spalte hinzuzufügen, müssen wir zunächst eine automatische Inkrementierungssequenz erstellen und sie der erforderlichen Spalte hinzufügen. Das hat mir gefallen.

1) Zunächst müssen Sie sicherstellen, dass für Ihre Tabelle ein Primärschlüssel vorhanden ist. Behalten Sie außerdem den Datentyp des Primärschlüssels in bigint oder smallint bei. (Ich habe bigint verwendet und konnte keinen Datentyp namens serial finden, wie in anderen Antworten an anderer Stelle erwähnt.)

2) Fügen Sie dann eine Sequenz hinzu, indem Sie mit der rechten Maustaste auf Sequenz klicken-> Neue Sequenz hinzufügen . Wenn die Tabelle keine Daten enthält, lassen Sie die Reihenfolge unverändert und nehmen Sie keine Änderungen vor. Speichern Sie es einfach. Wenn Daten vorhanden sind, fügen Sie den letzten oder höchsten Wert in der Primärschlüsselspalte zum aktuellen Wert auf der Registerkarte Definitionen hinzu, wie unten gezeigt. (enter image description here

3) Fügen Sie abschließend die Zeile nextval('your_sequence_name'::regclass) zum Standardwert in Ihrem Primärschlüssel hinzu, wie unten gezeigt.

(enter image description here Stellen Sie sicher, dass der Sequenzname hier korrekt ist. Dies ist alles und das automatische Inkrementieren sollte funktionieren.

15
toing_toing