حل تباينات تسلسل مفتاح 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