Ich benutze PostgreSQL 9.4 und pgAdminIII 1.20 Client. Beim Starten einer INSERT
auf einer bestimmten Tabelle, erhalte ich eine Fehlermeldung: Details: the key (gid)=(31509) already exists. (SQL State: 23505)
.INSERT schlägt fehl, weil Primärschlüssel bereits existiert
Ich gebe keinen gid Wert in dem Befehl, um die Sequenz die Arbeit machen zu lassen: ist
INSERT INTO geo_section (idnum, insee, ident) VALUES (25, '015233', '') ;
Die Reihenfolge wie folgt definiert:
CREATE SEQUENCE geo_section_gid_seq
INCREMENT 1
MINVALUE 1
MAXVALUE 9223372036854775807
START 31509
CACHE 1;
ALTER TABLE geo_section_gid_seq
OWNER TO postgres;
Die folgende Abfrage gibt 34502
:
SELECT max(gid) FROM geo_section ;
Daher habe ich versucht, die Reihenfolge zu ändern, um seque zu starten nce von 34503
:
ALTER SEQUENCE geo_section_gid_seq START 34503 ;
Ich erhalte eine Erfolgsmeldung, die besagt, dass die Abfrage ordnungsgemäß ausgeführt wurde. Aber die Folge START
Parameter bleibt mit 31509
Wert ...
Vielleicht haben Sie vergessen (nach dem Erstellen der Sequenz), um es an geo_section.gid anzuhängen? 'ALTER TABLE ONLY geo_section ALTER SPALTE gid SET DEFAULT nextval ('geo_section_gid_seq' :: regclass); SEQUENCE geo_section_gid_seq VON geo_section.gid OWNED ALTER; ' – joop