Nach CSV-Import primary key violation

Hier können die JVerein-Frischlinge ihre Fragen stellen.

Moderator: heiner

Antworten
GeorgvH
Beiträge: 3
Registriert: Dienstag 6. Januar 2015, 11:10
Verein: Humboldt-Gesellschaft für Wissenschaft, Kunst und Bildung
Mitglieder: 300
JVerein-Version: 2.8.5 - 501-385
Betriebssystem: Win7-64b

Nach CSV-Import primary key violation

Beitrag von GeorgvH »

Hallo,
wir haben als Mitglieder Vereine, also juristische Personen.
Nach dem Befüllen der Felder, inklusive der Pflichtfelder, wird der Button "speichern" gedrückt. Oben erscheint die Meldung "Fehler beim Speichern des Mitglieds."
Mir fällt auf, dass die Mandat-ID nicht erzeugt wurde. Sonst kann ich keinen Bedienungsfehler erkennen.

Gerade habe ich den entsprechenden Eintrag im Logfile gefunden:

[Mon Jan 12 18:59:28 CET 2015][ERROR][de.jost_net.JVerein.gui.control.MitgliedControl.handleStore] Fehler bei Speichern des Mitgliedes
java.rmi.RemoteException: insert failed, rollback successful; nested exception is:
org.h2.jdbc.JdbcSQLException: Eindeutiger Index oder Primärschlüssel verletzt: "CONSTRAINT_E7C_INDEX_C ON PUBLIC.MITGLIED(EXTERNEMITGLIEDSNUMMER)"
Unique index or primary key violation: "CONSTRAINT_E7C_INDEX_C ON PUBLIC.MITGLIED(EXTERNEMITGLIEDSNUMMER)"; SQL statement:
insert into MITGLIED (KTOIANREDE,LETZTEAENDERUNG,KTOIPLZ,GEBURTSDATUM,BEITRAGSGRUPPE,ADRESSIERUNGSZUSATZ,EINTRITT,STERBETAG,EXTERNEMITGLIEDSNUMMER,MANDATVERSION,KONTO,PLZ,MANDATSEQUENCE,KTOIEMAIL,ZAHLUNGSRHYTMUS,KTOIPERSONENART,ZAHLUNGSTERMIN,PERSONENART,ADRESSTYP,KTOIGESCHLECHT,EMAIL,TITEL,KTOINAME,MANDATDATUM,EINGABEDATUM,VERMERK2,IBAN,VERMERK1,TELEFONPRIVAT,ZAHLUNGSWEG,GESCHLECHT,BLZ,STRASSE,NAME,ORT,HANDY,BIC,KTOISTRASSE,KUENDIGUNG,KTOIORT,KTOIVORNAME,VORNAME,KTOISTAAT,STAAT,TELEFONDIENSTLICH,KTOITITEL,AUSTRITT,INDIVIDUELLERBEITRAG,KTOIADRESSIERUNGSZUSATZ,ZAHLERID,ANREDE) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) [23505-172]
at de.willuhn.datasource.db.AbstractDBObject.insert(AbstractDBObject.java:688)
at de.willuhn.datasource.db.AbstractDBObject.store(AbstractDBObject.java:308)
at de.jost_net.JVerein.gui.control.MitgliedControl.handleStore(MitgliedControl.java:3140)
at de.jost_net.JVerein.gui.view.AbstractAdresseDetailView$2.handleAction(AbstractAdresseDetailView.java:211)
at de.willuhn.jameica.gui.parts.Button$1$1.run(Button.java:177)
at org.eclipse.swt.custom.BusyIndicator.showWhile(Unknown Source)
at de.willuhn.jameica.gui.GUI$5.run(GUI.java:815)
at org.eclipse.swt.widgets.Synchronizer.syncExec(Unknown Source)
at org.eclipse.swt.widgets.Display.syncExec(Unknown Source)
at de.willuhn.jameica.gui.GUI.startSync(GUI.java:811)
at de.willuhn.jameica.gui.parts.Button$1.widgetSelected(Button.java:171)
at org.eclipse.swt.widgets.TypedListener.handleEvent(Unknown Source)
at org.eclipse.swt.widgets.EventTable.sendEvent(Unknown Source)
at org.eclipse.swt.widgets.Display.sendEvent(Unknown Source)
at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Unknown Source)
at org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source)
at de.willuhn.jameica.gui.GUI.loop(GUI.java:832)
at de.willuhn.jameica.gui.GUI.init(GUI.java:315)
at de.willuhn.jameica.system.Application.init(Application.java:148)
at de.willuhn.jameica.system.Application.newInstance(Application.java:90)
at de.willuhn.jameica.Main.main(Main.java:78)
Caused by: org.h2.jdbc.JdbcSQLException: Eindeutiger Index oder Primärschlüssel verletzt: "CONSTRAINT_E7C_INDEX_C ON PUBLIC.MITGLIED(EXTERNEMITGLIEDSNUMMER)"
Unique index or primary key violation: "CONSTRAINT_E7C_INDEX_C ON PUBLIC.MITGLIED(EXTERNEMITGLIEDSNUMMER)"; SQL statement:
insert into MITGLIED (KTOIANREDE,LETZTEAENDERUNG,KTOIPLZ,GEBURTSDATUM,BEITRAGSGRUPPE,ADRESSIERUNGSZUSATZ,EINTRITT,STERBETAG,EXTERNEMITGLIEDSNUMMER,MANDATVERSION,KONTO,PLZ,MANDATSEQUENCE,KTOIEMAIL,ZAHLUNGSRHYTMUS,KTOIPERSONENART,ZAHLUNGSTERMIN,PERSONENART,ADRESSTYP,KTOIGESCHLECHT,EMAIL,TITEL,KTOINAME,MANDATDATUM,EINGABEDATUM,VERMERK2,IBAN,VERMERK1,TELEFONPRIVAT,ZAHLUNGSWEG,GESCHLECHT,BLZ,STRASSE,NAME,ORT,HANDY,BIC,KTOISTRASSE,KUENDIGUNG,KTOIORT,KTOIVORNAME,VORNAME,KTOISTAAT,STAAT,TELEFONDIENSTLICH,KTOITITEL,AUSTRITT,INDIVIDUELLERBEITRAG,KTOIADRESSIERUNGSZUSATZ,ZAHLERID,ANREDE) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) [23505-172]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
at org.h2.message.DbException.get(DbException.java:169)
at org.h2.message.DbException.get(DbException.java:146)
at org.h2.index.BaseIndex.getDuplicateKeyException(BaseIndex.java:83)
at org.h2.index.PageBtree.find(PageBtree.java:121)
at org.h2.index.PageBtreeNode.addRowTry(PageBtreeNode.java:199)
at org.h2.index.PageBtreeIndex.addRow(PageBtreeIndex.java:104)
at org.h2.index.PageBtreeIndex.add(PageBtreeIndex.java:95)
at org.h2.table.RegularTable.addRow(RegularTable.java:124)
at org.h2.command.dml.Insert.insertRows(Insert.java:126)
at org.h2.command.dml.Insert.update(Insert.java:86)
at org.h2.command.CommandContainer.update(CommandContainer.java:79)
at org.h2.command.Command.executeUpdate(Command.java:235)
at org.h2.jdbc.JdbcPreparedStatement.executeUpdateInternal(JdbcPreparedStatement.java:154)
at org.h2.jdbc.JdbcPreparedStatement.executeUpdate(JdbcPreparedStatement.java:140)
at de.willuhn.datasource.db.AbstractDBObject.insert(AbstractDBObject.java:649)
... 21 more

Die Mitglieder wurden via CSV importiert. Dabei ist schon aufgefallen dass einige Mitglieder, darunter alle juristischen Personen, nicht importiert wurden. Wahrscheinlich muss ich sagen, diese wurden/werden nicht angezeigt. Offenbar wurde im aktuellen Fall die (externe) Mitgliedsnummer (und andere Daten??) des Datensatzes doch importiert.

Das scheint sich zu bestätigen. Ich habe jetzt eine externe Mitgliedsnummer, die in der alten Verwaltung noch nicht verwendet wurde. Jetzt habe ich in JVerein und in der alten Verwaltung unterschiedliche IDs. Und in JVerein sind nun auch ID und ext. MitglNr. unterschiedlich.

Kann ich die Daten bereinigen? In der Datei jverein.h2.db (mit Notepad geöffnet) finde ich tatsächlich den Datensatz (oder Teile davon?), wodurch diese primery key violation verursacht wurde.

Danke im Voraus
Gruß
Georg
Zuletzt geändert von GeorgvH am Montag 12. Januar 2015, 19:38, insgesamt 2-mal geändert.
Benutzeravatar
heiner
Administrator
Beiträge: 4510
Registriert: Freitag 30. Oktober 2009, 16:44
JVerein-Version: aktuelle Entwicklerversion
Betriebssystem: W10
Kontaktdaten:

Re: Vereine als Mitglied

Beitrag von heiner »

Gibt es Meldungen in der Datei jameica.log?

Bei mir funktioniert die Speicherung juristischer Personen.

Heiner
PS: Denkt daran, eure Vereine unter viewforum.php?f=3 vorzustellen.
GeorgvH
Beiträge: 3
Registriert: Dienstag 6. Januar 2015, 11:10
Verein: Humboldt-Gesellschaft für Wissenschaft, Kunst und Bildung
Mitglieder: 300
JVerein-Version: 2.8.5 - 501-385
Betriebssystem: Win7-64b

Re: Nach CSV-Import primary key violation

Beitrag von GeorgvH »

Hallo Heiner,

ich habe den Logeintrag nachgetragen.

Eben habe ich die Vereine, die bei uns Mitglied sind, gefunden. Sie sind unter Adressen mit Adresstyp "Gruppenmitglied" gefunden.

Gruß
Georg
Benutzeravatar
heiner
Administrator
Beiträge: 4510
Registriert: Freitag 30. Oktober 2009, 16:44
JVerein-Version: aktuelle Entwicklerversion
Betriebssystem: W10
Kontaktdaten:

Re: Nach CSV-Import primary key violation

Beitrag von heiner »

Hallo Georg,

es gibt Probleme mit der externen Mitgliedsnummer. Die ist bereits vergeben. Übernehme die Adresse als Mitglied mit einem rechten Mausklick auf die Adresse.

Heiner
PS: Denkt daran, eure Vereine unter viewforum.php?f=3 vorzustellen.
Antworten