0 0 Punkte

hallo,

Beim Anlagen eines neuen Kunden erhalte ich in unregelmäßigen Abständen folgende Fehlermeldung:

INSERT INTO customer (id, name) VALUES (?, '') (30446)
FEHLER: doppelter Schlüsselwert verletzt Unique-Constraint »customer_pkey«

DETAIL: Schlüssel »(id)=(30446)« existiert bereits.

Die id ist nicht richtig. normalerweise müsste hier eine Zahl größer als 34500 zur Anwendung kommen.
1 bis 2 mal kann man Kunden ganz normal anlegen, dann komm dieser o.g. Fehler.

Auch nach einem Neustart der Datenbank kann man (ich oder irgend ein anderer Benutzer) keinen neuen Kunden anlagen.

Wodurch wird der Index für die Neuvergabe der id gesetzt?

Was kann man hier machen?

1 Antwort

0 0 Punkte

Achtung: das Vorgehen erfordert direkte Manipulation der DB. Da ich mit zu 99,999% sicher bin, dass der Fehler allerdings eh schon durch einen wie auch immer gearteten direkten Eingriff in die DB zustande kam (und keinesfalls durch "normale" Benutzung über die Oberfläche), ist das bestimmt kein Problem.

Der Datenbankzähler für die ID-Spalte in der Tabelle customer heißt id. Leider wird dieser auch bei diversen anderen Tabellen genutzt. Also muss man den Zähler auf das Maximum aller ID-Spalten setzen, die den Zähler verwenden.

Welche Tabellen das sind, kann man herausbekommen, indem man sich einen Datenbankdump nur des Tabellenschemas anzeigen lässt (pg_dump --schema-only ...) und darin nach Spaltendefinitionen sucht, deren DEFAULT-Wert z.B. nextval('id') und ähnliche Konstrukte enthält.

Dann von all diesen Spalten das Maximum heraussuchen lassen, von allen Maxima das Maximum nehmen und den DB-Zähler auf diesen Wert hochsetzen (siehe PostgreSQL-Dokumentation).

Ähnliche Fragen

0 0 Punkte
1 1 Antwort
Anonym Gefragt 5, Feb 2019
Hallo zusammen, ich versuche heute Kivitendo zu installieren. Als System kommt ein debian zum einsatz mit frisch installiertem Postgresql. Ich habe die Anleitung befolgt,...
0 0 Punkte
1 1 Antwort
Anonym Gefragt 5, Apr 2017
Beim Anlegen einer neuen Datenbank kommt es zu folgendem Fehler: UPDATE defaults SET coa = ? (Germany-DATEV-SKR03EU) FEHLER: aktuelle Transaktion wurde abgebrochen Eine D...
0 0 Punkte
1 answers 1 Antwort
Anonym Gefragt 3, Mär 2016
Hallo, wir haben bei unterschiedlichen Kunden unterschiedliche Zahlungsziele/Zahlungsbedingungen. Neuerdings (seit kivi 3.3.0, eventuell schon seit 3.2.0) ändern sich di...
0 0 Punkte
2 2 Antworten
Anonym Gefragt 11, Aug 2012
Moin, gibt es eine Variable, so dass die Lieferantennumer beim Kunden in das .odt-Dokument generiert wird? Ich hab dazu nichts gefunden, weder im Wiki noch in beiden Fore...
0 0 Punkte
1 answers 1 Antwort
Anonym Gefragt 28, Dez 2017
Beim Anlegen neue Ware ist es nicht mehr möglich das Lager aus zu wählen. Auch bei bestehende Ware / Artikel ist eine Änderung des Lagers nicht möglich. Folgender Feh...