it-swarm.com.de

Wie setze ich nach dem Löschen aller Knoten die Knoten-ID zurück, um wieder bei 1 zu beginnen?

Ich habe Tonnen von Dummy-Inhalten zum Testen generiert und sie dann alle gelöscht. Da nid automatisch inkrementiert wird, hat der neu erstellte Knoten eine nid der zuletzt erstellten nid +1.

Wie kann ich nid wieder von 1 starten lassen?

16
gilzero

Bitte kürzen Sie die Knotentabelle nicht einfach so, es gibt einige andere Tabellen, die mit der Knotentabelle verbunden sind, wie Knotenrevisionen, Sequenzen, Feldtabellen, Taxonomietabellen und vieles mehr.

Es gibt keine sichere Möglichkeit, dies zu tun. Es hängt wirklich von Ihrer Site ab. Sie müssen alle Tabellen mit einer NID einschließlich der Sequenztabelle abschneiden und anpassen. Denken Sie daran, dass Ihre Website höchstwahrscheinlich unbrauchbar wird. Starten Sie also nicht zuerst ohne Backup.

12
Luis
ALTER TABLE `node` AUTO_INCREMENT = 1;

P.S - Andere, die auf diese Frage geantwortet haben: Ich habe nach dem Löschen des Inhalts nur eine kleine Überprüfung durchgeführt, und der zugehörige Inhalt ist tatsächlich gelöscht. Die Tabellen node_revisions und field_ * sind leer. node_delete sagt dasselbe - http://api.drupal.org/api/drupal/modules--node--node.module/function/node_delete_multiple/7

Manchmal bei Migrationsprojekten, wenn Sie von anderen Plattformen migrieren (z. B. ASP + MSSQL), wird es manchmal unvermeidlich, die NID aufgrund vieler Faktoren zurückzusetzen. Ich bin sicher, dass dies vermieden werden könnte, aber Zeit/Code Kompromiss ist immer da.

16
Dipen

SQL-Abfrage: ALTER TABLE 'node' AUTO_INCREMENT=1;

Stellen Sie sicher, dass Sie alle Knoten gelöscht haben, bevor Sie dies tun.

2
beeleg

Sie können das Modul Alle löschen mit den folgenden Drush-Befehlen verwenden:

Drupal 7

Löschen Sie Knoten aller Art und setzen Sie die Knoten-, Revisions- und Kommentarzähler zurück.

drush delete-all --reset

Drupal 8

siehe hier

Löscht alle Inhalte aller Art.

drush delete-all-delete-content

Und dann:

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

sie können die Knotentabelle abschneiden, aber achten Sie darauf, dass Sie die relationale Feldtabelle abschneiden müssen, wenn Sie nur die Inkrement-ID von 1 aus starten möchten, die Sie verwenden können

ALTER TABLE  `node` AUTO_INCREMENT=1
0
shahab