• 0

كيف أحدث بيانات على rails وَ postgreSQL باستعمال Primary Key موجود مسبقاً؟

أردت تحديث بعض البيانات على 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

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 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 هو الحقل المعرّف للبيانات الموجودة على القاعدة، ويمنع تغيير أو تكراره حتى تبقى البيانات صالحة منطقيا.

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن