テスト用に大量のダミーコンテンツを生成し、すべて削除しました。 nidは自動インクリメントなので、新しく作成されたノードには、最後に作成されたnid +1のnidがあります。
どうすればnidを再び1から始めることができますか?
そのようにノードテーブルを切り詰めないでください。node_revisions、シーケンス、フィールドテーブル、分類法テーブルなど、ノードテーブルに接続されている他のいくつかのテーブルがあります。
これを行う安全な方法はありません。それは実際にはサイトに依存します。シーケンステーブルを含むnidを持つすべてのテーブルを切り捨てて調整する必要があります。サイトが使用できなくなる可能性が非常に高いため、最初にバックアップなしで開始しないでください。
ALTER TABLE `node` AUTO_INCREMENT = 1;
PS-この質問に回答した他の人:私はコンテンツを削除した後に簡単なチェックを行っただけで、関連するコンテンツは確かに削除されました。node_revisionsとfield_ *テーブルは空です。 node_deleteは同じことを言う- http://api.drupal.org/api/drupal/modules--node--node.module/function/node_delete_multiple/7
移行プロジェクトで他のプラットフォームから移行する場合(ASP + MSSQL)など)、多くの要因によりnidをリセットすることが避けられないことがあります。/codeトレードオフは常に存在します。
SQLクエリ:ALTER TABLE 'node' AUTO_INCREMENT=1;
これを行う前に、すべてのノードを削除したことを確認してください。
次のDrushコマンドでモジュール すべて削除 を使用できます。
Drupal 7
すべてのタイプのノードを削除し、ノード、リビジョン、コメントのカウンターをリセットします。
drush delete-all --reset
Drupal 8
すべてのタイプのすべてのコンテンツを削除します。
drush delete-all-delete-content
その後:
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;
ノードテーブルを切り捨てることができますが、リレーショナルフィールドテーブルを切り捨てる必要があることに注意してください。
ALTER TABLE `node` AUTO_INCREMENT=1