اذهب إلى المحتوى

السؤال

نشر (معدل)

أردت تحديث بعض البيانات على Rails وَ postgreSQL بالإعتماد على Id، حيث بنية الجدول:

Lecture(id, name, etc.)

كمثال على البيانات:

(id: 1, name: "first")

وعند استعمال:

Lecture.create(id: 1, name: "newer")

أحصل على الخطأ التالي:

PG::UniqueViolation: ERROR:  duplicate key value violates unique constraint "lectures_pkey"

كيف أتجاوز هذا الخطأ؟

تم التعديل في بواسطة Badraoui

Recommended Posts

  • 2
نشر

من خلال الخطأ الظاهر على إطار العمل Rails:

PG::UniqueViolation: ERROR: duplicate key value violates unique constraint "lectures_pkey"

مما يعني أنّ:

Id هو القيمة الافتراضية لـ Primary Key، أي أنه لا يمكن تغييره أو تكرار قيمته، لأنك وببساطة أضفت قيمة على الجدول تحتوي id سبق وتم إدخاله، مما أدى إلى رفع خطأ وإظهار الرسالة السابقة.

لتفادي ذلك، وتغيير قيمة name الخاصة بـ lecteur.id=1 مثلاً، نستعمل الطريقة التالية:

@lecture = Lecture.find(1)
@lecture.update_attributes(name: "newer")

حيث قمنا بالبحث على السطر المراد تغييره على قاعدة البيانات من خلال استخدام الوظيفة find ثم تغيير الحقل name.

ملاحظة هامة: يعتبر id هو الحقل المعرّف للبيانات الموجودة على القاعدة، ويمنع تغيير أو تكراره حتى تبقى البيانات صالحة منطقيا.

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...