Integrity constraint violation /duplicate entry
am 11.02.2024 - 13:05 Uhr in
Wer oder was ist dafür zuständig, dass so eine Fehlermeldung auftritt und dann gar nichts mehr läuft?
Drupal\Core\Entity\EntityStorageException: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '31-0-0-de' for key 'PRIMARY': INSERT INTO
Was ist geschehen: Ich hab wie gewohnt einen neuen Inhaltstyp (mit body+ein Bild) angelegt, bin alleine in dem Projekt tätig (keine komplexeren Rechte) und die Seite hatte ich im Wartungsmodus. Da ist ein Eintrag doppelt passiert, ok warum? Und damit wurden die SQL Spielregeln verletzt, das konnte ich herausfinden. Leider fand ich keinen Weg mehr, die völlig abgestürzte Seite zu reanimieren. Kein drush cr, kein clear-cache oder update.php half. Ich konnte nur beim Provider den nächstgelegenen restore Zeitpunkt auswählen und das ganze zurücksetzen lassen.
Liegt es an einem Anwenderfehler und könnte ich das verhindern? Passt ihrgendwas Grundsätzliches nicht?
Was macht ihr in einem solchen Fall?
- Anmelden oder Registrieren um Kommentare zu schreiben
Kannst Du ein paar mehr
am 11.02.2024 - 14:24 Uhr
Kannst Du ein paar mehr Details zum Drupal und den eingesetzten Module mitteilen. Besonders die einzelnen Versionen wären sehr hilfreich.
sense-design | online solutions | Do not hack core!
Drupalcenter Verhaltensregeln | Threads bitte auf [gelöst] stellen.
Drupal 10.2.3
am 11.02.2024 - 15:21 Uhr
Das sind meine Daten, alles up to date.
Drupal core 10.2.3
A Simple Timeline 8.x-2.0
Enthält: Simple Timeline
Aktuell Ok
Agreement 3.0.0-alpha3
Enthält: Agreement
Aktuell Ok
Nodeaccess 2.0.0-alpha2
Enthält: Nodeaccess
Du hast die Fehlermeldung da
am 11.02.2024 - 16:06 Uhr
Du hast die Fehlermeldung da abgeschnitten, wo es interessant wird. Es wird aus Deinen Eingabedaten ein Key nämlich '31-0-0-de' generiert (irgend ein Datum?). Der ist in der Tabelle, in die er eingetragen werden soll, nicht eindeutig. Habe ich z.b. schon bei Search-Tabellen ähnlich erlebt. Das sollte nie passieren und ist meines Erachtens ein Bug. Da kommst Du nur raus, wenn Du Deinen letzten Eintrag vor diesen Fehler direkt in der Datenbank suchst und die Felder und den Node manuell löschst. Ist also tricky. Beim Search war das Problem, daß der Key nicht direkt utf8 genommen wurde und dann ss und ß beide als ss eingetragen werden sollten.
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
da ist der gesamte Text
am 11.02.2024 - 17:39 Uhr
Drupal\Core\Database\IntegrityConstraintViolationException: SQLSTATE[23000]: Integrity constraint violation:
1062 Duplicate entry '31-0-0-de' for key 'PRIMARY': INSERT INTO "node__field_masters_bild" ("entity_id", "revision_id", "bundle", "delta", "langcode", "field_masters_bild_target_id", "field_masters_bild_alt", "field_masters_bild_title", "field_masters_bild_width", "field_masters_bild_height")
VALUES (:db_insert_placeholder_0, :db_insert_placeholder_1, :db_insert_placeholder_2, :db_insert_placeholder_3, :db_insert_placeholder_4, :db_insert_placeholder_5, :db_insert_placeholder_6, :db_insert_placeholder_7, :db_insert_placeholder_8, :db_insert_placeholder_9); Array ( [:db_insert_placeholder_0] => 31 [:db_insert_placeholder_1] => 80 [:db_insert_placeholder_2] => masters_of_kpt [:db_insert_placeholder_3] => 0 [:db_insert_placeholder_4] => de [:db_insert_placeholder_5] => 54 [:db_insert_placeholder_6]
=> Bild: Will Davis [:db_insert_placeholder_7] => [:db_insert_placeholder_8] => 306 [:db_insert_placeholder_9] => 372 ) in Drupal\mysql\Driver\Database\mysql\ExceptionHandler->handleExecutionException() (line 45 of /var/www/meinwebzugangdingsda/web/core/modules/mysql/src/Driver/Database/mysql/ExceptionHandler.php).
In der Datenbank werde ich nicht umrühren. Finde es spannend, dass es bei zweiten Anlauf dann geklappt hat. Wie der Fehler entstanden ist keine Ahnung.
Jetzt sieht man mehr, aber es
am 12.02.2024 - 11:44 Uhr
Jetzt sieht man mehr, aber es bleibt ein Bug, wodurch auch immer verursacht. Das System will einen Eintrag in Tabelle node__field_masters_bild vornehmen.der Primary Key setzt sich evtl. aus "entity_id", "revision_id", "delta", "langcode" zusammen (meine Vermutung). Die entity_id kann eigentlich nicht doppelt vorkommen, so daß der Schlüssel immer eindeutig sein sollte beim gleichen Bundle. Bei einem anderen Bundle ist das natürlich schon möglich. Deshalb hätte ich erwartet, daß der Bundelname mit zum Key gehört. Könnte man jetzt in der entsprechenden Tabelle mal nachsehen. Offenbar ist Deine Eingabe irgendwie nicht richtig verarbeitet worden, denn die Werte sind anders: 31, 80, masters_of_kpt, 0, de
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
ähnliches
am 25.02.2024 - 02:14 Uhr
ein ähnliches Problem sehe ich bei mir auch öfter in meiner aktuellen Migration - wenn sowas
SQLSTATE[23000]: Integrity constraint violation:
auftaucht gibts bei dem Datentyp/der Tabelle in der Folge keine neuen Einträge mehr ..
Bisher nur Datenbank neu jeweils als als temporäre Lösung :(
https://amazonas-box.de
https://muenchen.social/@Franz