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