it-swarm.asia

بعد حذف جميع العقد ، كيف يمكنني إعادة تعيين معرف العقدة للبدء من 1 مرة أخرى؟

لقد أنشأت أطنانًا من المحتوى الوهمي للاختبار ، ثم حذفتها جميعًا. نظرًا لأن nid هو زيادة تلقائية ، فإن العقدة التي تم إنشاؤها حديثًا سيكون لها nid لآخر رقم تم إنشاؤه +1.

كيف يمكنني البدء من 1 مرة أخرى؟

16
gilzero

لا تقطع Plase جدول العقدة بهذه الطريقة ، فهناك بعض الجداول الأخرى المتصلة بجدول العقدة ، مثل node_revisions ، والتسلسلات ، وجداول الحقول ، وجداول التصنيف ، وغيرها الكثير.

لا توجد طريقة آمنة للقيام بذلك ، هذا يعتمد حقًا على موقعك ، سيكون عليك اقتطاع وتعديل جميع الجداول التي لها رقم بما في ذلك جدول التسلسل. تذكر أنه من المحتمل جدًا أن يصبح موقعك غير قابل للاستخدام ، لذلك لا تبدأ بدون نسخة احتياطية أولاً.

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) ، يصبح من غير الممكن في بعض الأحيان إعادة تعيين الرقم بسبب عوامل كثيرة. أنا متأكد من أنه يمكن تجنبه ولكن الوقت/رمز المفاضلة موجود دائما.

16
Dipen

استعلام SQL: ALTER TABLE 'node' AUTO_INCREMENT=1;

تأكد من حذف جميع العقد قبل القيام بذلك.

2
beeleg

يمكنك استخدام الوحدة حذف الكل مع أوامر الحفر التالية:

دروبال 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

يمكنك اقتطاع جدول العقدة ولكن ، انتبه ، يجب اقتطاع جدول الحقول العلائقية ، إذا كنت ترغب فقط في بدء زيادة معرف من 1 يمكنك استخدام

ALTER TABLE  `node` AUTO_INCREMENT=1
0
shahab