테스트를 위해 수많은 더미 콘텐츠를 생성 한 다음 모두 삭제했습니다. nid는 자동 증가이므로 새로 작성된 노드에는 마지막으로 작성된 nid +1의 nid가 있습니다.
nid를 1부터 다시 시작하려면 어떻게해야합니까?
테스트를 위해 수많은 더미 콘텐츠를 생성 한 다음 모두 삭제했습니다. nid는 자동 증가이므로 새로 작성된 노드에는 마지막으로 작성된 nid +1의 nid가 있습니다.
nid를 1부터 다시 시작하려면 어떻게해야합니까?
답변:
Plase는 노드 테이블을 자르지 않습니다. node_revisions, 시퀀스, 필드 테이블, 분류법 테이블 등과 같은 노드 테이블에 연결된 다른 테이블이 있습니다.
이 작업을 수행하는 안전한 방법은 없습니다. 실제로 사이트에 따라 다르므로 시퀀스 테이블을 포함하여 nid가있는 모든 테이블을 자르고 조정해야합니다. 사이트를 사용할 수 없게 될 가능성이 높으므로 먼저 백업하지 않고 시작하지 마십시오.
ALTER TABLE `node` AUTO_INCREMENT = 1;
추신-이 질문에 대답 한 다른 사람들 : 나는 내용을 삭제 한 후 약간의 검사를했는데 관련 내용이 실제로 삭제되고 node_revisions 및 field_ * 테이블이 비어 있습니다. node_delete 같은 말한다 - http://api.drupal.org/api/drupal/modules--node--node.module/function/node_delete_multiple/7
다른 플랫폼 (예 : ASP + MSSQL)에서 마이그레이션 할 때 마이그레이션 프로젝트에서 여러 요인으로 인해 nid를 재설정 할 수없는 경우가 있습니다. 나는 그것이 피할 수 있다고 확신하지만 시간 / 코드 트레이드 오프가 항상 있습니다.
다음 drush 명령으로 모두 모듈 삭제를 사용할 수 있습니다 .
드루팔 7
모든 유형의 노드를 삭제하고 노드, 개정 및 주석 카운터를 재설정하십시오.
drush delete-all --reset
드루팔 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;
노드 테이블을자를 수는 있지만 관계형 필드 테이블을 잘라야한다는 점에주의하십시오. 증명 ID를 1에서 시작하려면 다음을 사용할 수 있습니다
ALTER TABLE `node` AUTO_INCREMENT=1