it-swarm-es.com

Después de eliminar todos los nodos, ¿cómo restablezco la ID del nodo para que comience desde 1 nuevamente?

Generé toneladas de contenido ficticio para probar y luego las eliminé todas. Como nid es un incremento automático, el nodo recién creado tendrá un nid del último nid creado +1.

¿Cómo puedo hacer que nid comience desde 1 nuevamente?

16
gilzero

Plase no trunca la tabla de nodos de esa manera, hay algunas otras tablas conectadas a la tabla de nodos, como node_revisions, secuencias, tablas de campos, tablas de taxonomía y muchas más.

No hay una forma segura de hacerlo, realmente depende de su sitio, tendrá que truncar y ajustar todas las tablas que tengan un nid, incluida la tabla de secuencias. Recuerde, es muy probable que su sitio quede inutilizable, así que no comience sin una copia de seguridad primero.

12
Luis
ALTER TABLE `node` AUTO_INCREMENT = 1;

P.S - Otros que han respondido a esta pregunta: acabo de hacer una pequeña comprobación después de eliminar el contenido y el contenido asociado se elimina de hecho, node_revisions y field_ * tables están vacías. node_delete dice lo mismo - http://api.drupal.org/api/drupal/modules--node--node.module/function/node_delete_multiple/7

A veces, en proyectos de migraciones cuando migras desde otras plataformas (ej. ASP + MSSQL), a veces es inevitable restablecer el nid debido a muchos factores. Estoy seguro de que podría evitarse pero el tiempo/el intercambio de códigos siempre está ahí.

16
Dipen

Consulta SQL: ALTER TABLE 'node' AUTO_INCREMENT=1;

Asegúrese de haber eliminado todos los nodos antes de hacer esto.

2
beeleg

Puede usar el módulo Eliminar todo con los siguientes comandos drush:

Drupal 7

Eliminar nodos de todos los tipos y restablecer contadores de nodo, revisión y comentarios.

drush delete-all --reset

Drupal 8

ver aquí

Elimina todo el contenido de todos los tipos.

drush delete-all-delete-content

Y entonces:

ALTER TABLE `node` AUTO_INCREMENT=1;
ALTER TABLE `node_revision` AUTO_INCREMENT=1;
ALTER TABLE `node_field_data` AUTO_INCREMENT=1;
ALTER TABLE `node_field_revision` AUTO_INCREMENT=1;
2
schneidolf

puede truncar la tabla de nodos pero, preste atención, debe truncar la tabla de campos relacionales, si solo desea comenzar a incrementar la identificación desde 1, puede usar

ALTER TABLE  `node` AUTO_INCREMENT=1
0
shahab