it-swarm-ko.tech

모든 노드를 삭제 한 후 1부터 다시 시작하도록 노드 ID를 어떻게 재설정합니까?

테스트를 위해 수많은 더미 콘텐츠를 생성 한 다음 모두 삭제했습니다. nid는 자동 증가이므로 새로 작성된 노드에는 마지막으로 작성된 nid +1의 nid가 있습니다.

Nid를 1부터 다시 시작하려면 어떻게해야합니까?

16
gilzero

Plase는 노드 테이블을 자르지 않습니다. node_revisions, 시퀀스, 필드 테이블, 분류법 테이블 등과 같은 노드 테이블에 연결된 다른 테이블이 있습니다.

이 작업을 수행하는 안전한 방법은 없습니다. 실제로 사이트에 따라 다르므로 시퀀스 테이블을 포함하여 nid가있는 모든 테이블을 자르고 조정해야합니다. 사이트를 사용할 수 없게 될 가능성이 높으므로 먼저 백업하지 않고 시작하지 마십시오.

12
Luis
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를 재설정 할 수없는 경우가 있습니다. 피할 수는 있지만 시간은 확실합니다/code 트레이드 오프는 항상 존재합니다.

16
Dipen

SQL 쿼리 : ALTER TABLE 'node' AUTO_INCREMENT=1;

이 작업을 수행하기 전에 모든 노드를 삭제했는지 확인하십시오.

2
beeleg

다음 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;
2
schneidolf

노드 테이블을자를 수는 있지만 관계형 필드 테이블을 잘라야한다는 점에주의하십시오. 증분 ID를 1에서 시작하려면 다음을 사용할 수 있습니다

ALTER TABLE  `node` AUTO_INCREMENT=1
0
shahab