Pregunta

i exporta un montón de mesas y les prefijo "ch_" y los importó de nuevo. Todo el uso de phpMyAdmin. Todo funciona bien ... hasta que yo quiero crear algo. Es un error con este mensaje:

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.

Mientras que los incrementos '4-4' cada vez que intento para guardar. Eso me hizo pensar el valor AUTO_INCREMENT en el PP es de alguna manera equivocada - a pesar de que se ha especificado correctamente en mi export.sql. Por lo tanto he tratado de restablecer el valor AUTO_INCREMENT a un número alto ridícula usando ALTER TABLE some_table AUTO_INCREMENT=10000. Aún así mismo comportamiento ...

Cualquier persona una idea de lo que está pasando aquí?

Hice este procedimiento un par de veces antes ... pero sin que esto ocurra. Me está volviendo loco: /

¿Fue útil?

Solución 2

lección aprendida:

Drupal no utiliza el valor AUTO_INCREMENT de MySQL.

A medida que aprendía incremento automático no es parte del estándar ANSI SQL - es sólo una cosa muy común. Drupal no quiere depender de algunas implementaciones de diferentes RDBMS, por lo que tienen un {sequences} tabla que tiene una columna para el nombre de la tabla y el siguiente id-valor que puede ser cargado con db_next_id ($ nombre) . Por supuesto anteponiendo los nombres de tabla, he tenido que añadir el prefijo en la tabla de secuencias también.

Como mucho, ya que me llevó frutos secos, en primer lugar, creo que es una decisión sabia las Drupal desarrolladores hicieron.

Otros consejos

Por lo tanto, su importación funciona bien, es sólo cuando se intenta insertar un nuevo registro después de todo lo que se ha importado que se obtiene este error? Si ese es el caso, entonces:

  1. Su AUTO_INCREMENT no está configurado correctamente.
  2. Usted está especificando un valor para el campo AUTO_INCREMENT.

Desde el post anterior, parece que usted está especificando un valor para el campo AUTO_INCREMENT. Debe actualizar su AUTO_INCREMENT para el MAX + 1 de la tabla, y luego, cuando lo haces No Eres inserto, no especifique un valor para ese campo y MySQL usará el AUTO_INCREMENT para usted ...

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top