"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية إعادة تعيين تسلسل المفتاح الأساسي بعد المزامنة مع صفوف الجدول؟

كيفية إعادة تعيين تسلسل المفتاح الأساسي بعد المزامنة مع صفوف الجدول؟

نشر في 2025-04-17
تصفح:741

How Can I Reset a Postgres Primary Key Sequence Out of Sync with Table Rows?

حل تباينات تسلسل مفتاح Postgresql الأساسي

يمكن أن يتسبب تسلسل المفتاح الأساسي غير المحسوب في صفوف الجدول الخاصة بك إلى أخطاء مفتاح مكررة محبط. يحدث هذا في كثير من الأحيان أثناء واردات البيانات أو استعادة حيث لا يتم الحفاظ على سلامة التسلسل. إليك كيفية إصلاحه:

1. ابحث عن أعلى معرف:

استخدم الدالة max () لتحديد أكبر معرف في الجدول الخاص بك:

SELECT MAX(id) FROM your_table;

2. احصل على القيمة التالية للتسلسل:

يعرض هذا الاستعلام القيمة التالية التي تم إنشاؤها بواسطة التسلسل:

SELECT nextval('your_table_id_seq');

3. أعد تعيين التسلسل (إذا لزم الأمر):

إذا كانت القيمة التالية للتسلسل أصغر من معرف الجدول القصوى ، فقم بإعادة ضبط التسلسل داخل المعاملة لمنع إدراج متزامن:

BEGIN;
LOCK TABLE your_table IN EXCLUSIVE MODE;
SELECT setval('your_table_id_seq', (SELECT GREATEST(MAX(your_id), nextval('your_table_id_seq') - 1) FROM your_table));
COMMIT;

المصدر: مقتبس من مناقشة منتدى Ruby.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3