Frage

i exportiert eine Reihe von Tabellen und voran sie mit „ch_“ und wieder importiert. Alle mit phpMyAdmin. Es funktioniert alles gut ... bis ich etwas schaffen will. Es schlägt fehl, mit dieser Nachricht angezeigt:

user warning: Duplicate entry '4-4' for key 'PRIMARY' query: INSERT INTO ch_node (nid, vid, title, type, uid, status, created, changed, comment, promote, sticky) VALUES (4, 4, 'Nützliche Dokumente', 'page', 1, 1, 1288790996, 1288791130, 0, 0, 0) in /var/www/clients/client20/site60/docroot/includes/database.mysql.inc on line 172.

Während der ‚4-4‘ Schritte jedes Mal, wenn ich versuche, zu speichern. Das machte ich denke, der auto_increment Wert im DB irgendwie falsch ist - wenn es richtig in meinem export.sql angegeben wurde. Daher habe ich versucht, den auto_increment Wert bis zu einem gewissen lächerlich hohen Zahl mit ALTER TABLE some_table AUTO_INCREMENT=10000 zurücksetzen. Noch gleiches Verhalten ...

Wer eine Vorstellung davon, was ist hier los?

Ich habe diese Prozedur ein paar Mal vor ... aber ohne dies geschieht. Es macht mich verrückt: /

War es hilfreich?

Lösung 2

Lektion gelernt:

Drupal nicht verwendet MySQL auto_increment Wert.

Wie ich lernte Autoinkrement nicht Teil des SQL-Ansi-Standard ist - es ist nur eine sehr gewöhnliche Sache. Drupal will nicht auf einigen Implementierungen verschiedenen RDBMS verlassen, so dass sie einen Tisch {sequences} haben, die eine Spalte für den Tabellennamen hat und den nächsten ID-Wert, der mit db_next_id ($ name) . Natürlich durch die Tabellennamen voranstellen, ich hatte auch das Präfix in den Sequenzen Tabelle hinzuzufügen.

So viel wie es mir fährt Nuss in erster Linie, ich glaube, es ist eine kluge Entscheidung, der Drupal-Entwickler gemacht.

Andere Tipps

So, Ihr Import funktioniert gut, es ist nur, wenn Sie versuchen, einen neuen Datensatz einfügen, nachdem alles importiert wurde, dass diese Fehlermeldung angezeigt? Wenn das der Fall ist, dann entweder:

  1. Ihre auto_increment ist nicht richtig eingestellt.
  2. Sie einen Wert für Ihr auto_increment Feld angeben.

Von der Post oben sieht es aus wie Sie einen Wert für Ihr auto_increment Feld angeben. Sie sollten Ihre auto_increment zum MAX + 1 der Tabelle aktualisieren, und dann, wenn Sie Sie sind Einsatz zu tun, keinen Wert für das Feld angeben und MySQL die auto_increment für Sie ...

verwenden
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top