Wie konvertieren von integer zu Seriell
Ich habe eine Tabelle, die einen Primärschlüssel Spalte "gid" und der Typ "Integer not NULL".
Ich will es konvertieren in "Serial not NULL", so dass ich fügen Sie einige Werte in dieser Tabelle.
Ich verwendet folgende Befehle zum konvertieren von in Serie:
CREATE SEQUENCE test_table_gid_seq
INCREMENT 1
MINVALUE 1
MAXVALUE 2147483648 START 1
CACHE 1;
ALTER TABLE test_table ALTER COLUMN gid
SET DEFAULT nextval('test_table_gid_seq'::regclass);
Dieser Befehl konvertiert Ganzzahl serial. Aber während ich einige Daten eingegeben zu der Tabelle ist folgender Fehler aufgetreten:
FEHLER: doppelter Schlüsselwert verletzt unique-constraint "pk_test".
Mir bitte helfen, diese zu lösen. Gibt es irgendeine andere Methode zum konvertieren von integer zu serial?
- Mögliche Duplikate von Hinzufügen von 'serial' auf vorhandene Spalte in Postgres
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wählen Sie max-Wert von gid-Spalte (max_gid):
Und verwenden Sie es als Startpunkt für die Sequenz (wahrscheinlich, max_gid+1):