it-swarm-vi.com

Sau khi xóa tất cả các nút, làm cách nào để đặt lại ID nút để bắt đầu lại từ 1?

Tôi đã tạo ra hàng tấn nội dung giả để thử nghiệm, và sau đó xóa tất cả. Vì nid là tự động tăng, nút mới được tạo sẽ có nid +1 được tạo cuối cùng.

Làm thế nào tôi có thể làm cho nid bắt đầu từ 1 lần nữa?

16
gilzero

Plase không cắt bớt bảng nút như vậy, có một số bảng khác được kết nối với bảng nút, như nút numvvv, trình tự, bảng trường, bảng phân loại và nhiều bảng khác.

Không có cách nào an toàn để làm điều này, nó thực sự phụ thuộc vào trang web của bạn, bạn sẽ phải cắt bớt và điều chỉnh tất cả các bảng có nid bao gồm bảng tuần tự. Hãy nhớ rằng, rất có thể trang web của bạn trở nên không sử dụng được, vì vậy đừng bắt đầu mà không có bản sao lưu trước.

12
Luis
ALTER TABLE `node` AUTO_INCREMENT = 1;

P.S - Những người khác đã trả lời về câu hỏi này: Tôi vừa thực hiện một kiểm tra nhỏ sau khi xóa nội dung và nội dung liên quan thực sự bị xóa, các nút nodevvutions và field_ * trống. node_delete cũng nói như vậy - http://api.drupal.org/api/drupal/modules--node--node.module/feft/node_delete_mult Môn/7

Đôi khi, đối với các dự án di chuyển khi bạn di chuyển từ các nền tảng khác (ví dụ: ASP + MSSQL), đôi khi việc đặt lại nid là không thể tránh khỏi do nhiều yếu tố. Tôi chắc chắn có thể tránh được nhưng thời gian/đánh đổi mã luôn ở đó.

16
Dipen

Truy vấn SQL: ALTER TABLE 'node' AUTO_INCREMENT=1;

Hãy chắc chắn rằng bạn đã xóa tất cả các nút trước khi làm điều này.

2
beeleg

Bạn có thể sử dụng mô-đun Xóa tất cả với các lệnh drush sau:

Drupal 7

Xóa các nút của tất cả các loại, và đặt lại nút, sửa đổi và bình luận quầy.

drush delete-all --reset

Drupal 8

xem tại đây

Xóa tất cả nội dung của tất cả các loại.

drush delete-all-delete-content

Và sau đó:

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

bạn có thể cắt bớt bảng nút nhưng, chú ý bạn phải cắt bớt bảng trường quan hệ, nếu bạn chỉ muốn bắt đầu tăng id từ 1, bạn có thể sử dụng

ALTER TABLE  `node` AUTO_INCREMENT=1
0
shahab