Fehlenden Primary Key in der WordPress-Tabelle wp_options reparieren

Unter bestimmten Umständen kann wp_options (oder jede andere Tabelle) ihren Primary Key Index verlieren.

Der genaue Grund für dieses Problem ist nicht zu 100% klar. Es scheint, dass dies passieren kann, wenn die Datenbank manuell von einer Datenbank in eine andere migriert wurde oder durch ein Plugin oder Tool, das nicht alle Konstellationen abdeckt, wie z.B. unterschiedliche MySQL-Versionen oder Typen wie InnoDB oder MyISAM.

Um es klarzustellen: WP STAGING ist nicht der Grund für diesen Fehler. Wir helfen dir nur, diesen Fehler zu erkennen, indem wir eine deutliche Warnung in deinem Admin-Dashboard anzeigen, wenn dies passiert:

Wir tun dies, weil dieser Fehler ein kritischer und sehr heimtückischer ist. Du wirst ihn nicht bemerken, bis es zu spät ist, ihn schnell zu beheben. Je länger du wartest, desto schwieriger wird es, ihn zu lösen.

Das liegt daran, dass deine Website fast wie vorher funktioniert und nur im Hintergrund anders arbeitet.

Hier ein kurzes Beispiel, warum das für die Tabelle wp_options wichtig ist:

Die Tabelle wp_options hat eine Spalte namens option_id. Diese ID ist normalerweise einzigartig und kann nur einmal einer Zeile zugewiesen werden. Die ID wird automatisch für jede Zeile erhöht, so wie hier:

option_id | option_name
1                     |  option1
2                     | option2
3                     | option3

Wenn der Primary Key fehlt, wird die option_id nicht mehr erhöht, und alle neuen Zeilen erhalten die option_id-Nummer 0, so wie hier:

option_id | option_name
1                     |  option1
2                     | option2
3                     | option3
0                     | option4
0                     | option5
0                     | option6

Das Problem tritt auf, wenn du versuchst, diese Zeilen in eine andere Datenbank zu exportieren und importieren. Die option_id muss eine einzigartige Nummer sein, daher werden SQL-Insert-Fehler wie „Can not insert duplicate key …“ angezeigt und die Migration wird gestoppt.

Als Ergebnis können WP STAGING und jedes andere Migrations-Plugin den Datenbanktransfer zu einer anderen Datenbank nicht durchführen. Zum Beispiel wird der Pushing-Vorgang von der Staging-Seite zur Produktionsseite fehlschlagen.

Dieser Screenshot zeigt eine reguläre wp_options-Tabelle mit einem Primary Key auf der option_id-Spalte:

Prüfen ob der Primary Key Index in der WordPress-Datenbanktabelle wp_options fehlt. Bild mit Index

Dieser zweite Screenshot zeigt die wp_options-Tabelle mit einem fehlenden Primary Key:

Prüfen ob die Tabelle einen fehlenden Primary Key Index hat. Bild mit fehlendem Index

Hinweis: Du benötigst in diesem Tutorial ein Datenbank-Management-Tool, zum Beispiel „adminer“ oder PHPMyAdmin.

Bestehende option_id’s umbenennen

  1. Sichere deine gesamte Datenbank und lade sie herunter.
  2. Ändere die option_id-Werte für alle doppelten IDs.
    Ich empfehle, die größte Nummer in der option_id-Spalte zu nehmen und sie einzeln zu erhöhen. Dieser Screencast zeigt, wie du das machen kannst:

Primary Key Index hinzufügen und Tabelle ändern

  1. Öffne PHPMyAdmin oder Adminer und navigiere zur wp_options-Tabelle.
  2. Klicke auf „alter indexes“ wie in diesem Screenshot:
  3. Setze dann „option_id“ als Primary Key:
  4. Wenn du den Fehler „Duplicate entry ‚0‘ for key PRIMARY“ erhältst, bedeutet das, dass noch doppelte IDs in der Tabelle vorhanden sind und du nicht alle geändert hast:
  5. Wenn das der Fall ist, finde die übrigen Einträge und zähle deren Werte hoch, sodass keine Duplikate mehr in der Tabelle vorhanden sind. Danach kannst du erneut den PRIMARY KEY zur Tabelle hinzufügen.

Nach der Behebung des fehlenden Primary Keys bist du bereit, die Staging-Seite auf die Live-Seite zu pushen. Es wird jedoch empfohlen, vorher ein Backup der Datenbank zu erstellen.

Updated on März 9, 2026

Alaa Salama

Autor: Alaa Salama

Ich arbeite seit mehr als einem Jahrzehnt im Support, weil mir die menschliche Seite der Technologie wirklich am Herzen liegt. Ob ich ein komplexes WordPress-Problem löse oder individuelle Plugins und Code-Snippets entwickle, um Arbeitsabläufe zu vereinfachen: Mein Ziel ist immer, Reibung zu reduzieren und Menschen dabei zu helfen, effizienter zu arbeiten. Für mich gibt es nichts Schöneres, als zu sehen, wie eine von mir entwickelte Lösung den Alltag eines anderen Menschen verbessert.

Wenn ich offline bin, stecke ich meistens trotzdem noch „unter der Haube“ von irgendetwas. Ich begeistere mich für Serveroptimierung und DIY-Elektronik und verbringe meine Freizeit oft mit Smart-Home-Projekten und Hardware-Reparaturen. Besonders wertvoll ist mir die Zeit in meiner heimischen Werkstatt mit meinen Kindern. Gemeinsam kümmern wir uns um alles, von Reparaturen im Haushalt bis hin zu kreativen Projekten, und fördern dabei die Freude daran, Dinge zu bauen, die lange halten.