البرمجة

حل مشكلة UNIQUE Constraint في SQLite3

في هذا السياق، يظهر خطأ “UNIQUE constraint failed” عند إدراج البيانات في قاعدة البيانات SQLite3 الخاصة بك. يتسبب هذا الخطأ عادةً في تعارض مع قاعدة البيانات الفريدة (UNIQUE constraint) التي قمت بتعريفها في هيكل الجدول. يجدر بنا تحليل الشيفرة لتحديد مكان الخطأ وكيفية حله.

أولًا، لديك جدول list وجدول item حيث يحدث خطأ “UNIQUE constraint failed: list.list_id” و”UNIQUE constraint failed: item.item_id” على التوالي. يبدو أنك تحاول إدراج قيمة مكررة في عمود list_id في جدول list و item، وهو يعتبر مفتاح رئيسي (PRIMARY KEY)، وعليه لا يمكن أن تكون له قيم مكررة.

عند فحص الشيفرة، يظهر أن هناك أخطاء في إدراج البيانات في جدول list و item. في جدول list، يبدو أن هناك قيمة مكررة في list_id في الصفوف ذات القيم (1, “user2-list1”, 2) و (1, “user3-list1”, 3) و (2, “user3-list2”, 3). في جدول item، يحدث الخطأ نفسه في الصفوف ذات القيم (1, “user2-list1-item1”, “FALSE”, 1) و (1, “user3-list1-item1”, “FALSE”, 1) و (1, “user3-list3-item1”, “FALSE”, 2).

لحل هذه المشكلة، يجب عليك تصحيح القيم المكررة في الجدولين list و item. على سبيل المثال، قم بتعديل الصفوف في جدول list بحيث تكون القيم فريدة، على سبيل المثال:

sql
INSERT INTO list VALUES (4, "user2-list1", 2); INSERT INTO list VALUES (4, "user3-list1", 3); INSERT INTO list VALUES (5, "user3-list2", 3);

وكذلك في جدول item:

sql
INSERT INTO item VALUES (3, "user2-list1-item1", "FALSE", 1); INSERT INTO item VALUES (4, "user3-list1-item1", "FALSE", 1); INSERT INTO item VALUES (5, "user3-list3-item1", "FALSE", 2);

بعد تصحيح البيانات، يجب أن يتم إدراجها بنجاح دون وجود أخطاء “UNIQUE constraint failed”. يجب أن تكون هذه الإصلاحات كافية لحل المشكلة وجعل تشغيل قاعدة البيانات بشكل صحيح.

المزيد من المعلومات

يتسبب خطأ “UNIQUE constraint failed” في SQLite3 عادةً في محاولة إدراج قيمة مكررة في عمود يتم تحديده كفهرس فريد (UNIQUE)، وهو يُستخدم للتأكد من عدم تكرار القيم في هذا العمود. في الشيفرة التي قدمتها، يُظهر الخطأ في الأماكن التي تتعلق بالمفاتيح الرئيسية للجداول.

الجدول الأول هو جدول user، والذي يحتوي على معلومات المستخدمين. يتم تعريف user_id كمفتاح رئيسي فريد، وعند إدراج قيمة مكررة في هذا الحقل، سيتم إثارة خطأ UNIQUE constraint failed. لتجنب هذا، يجب التأكد من عدم وجود قيم متكررة في user_id عند إدراج بيانات المستخدمين.

الجدول الثاني هو جدول list، والمشكلة تكمن في إدراج قيمة مكررة في list_id. يتم تعريف list_id كمفتاح رئيسي فريد أيضًا، وعند محاولة إدراج قيمة مكررة في هذا الحقل، سيتم إثارة الخطأ. لتصحيح ذلك، يجب التأكد من توفير قيم فريدة لـ list_id في كل عملية إدراج.

الجدول الثالث هو جدول item، وهنا نجد نفس المشكلة مع item_id. يتم تعريفه كمفتاح رئيسي فريد، ولكن يبدو أن هناك محاولات لإدراج قيم مكررة. لضمان استمرار عملية الإدراج بنجاح، يجب توفير قيم فريدة لـ item_id في كل صف.

من الجدير بالذكر أن توفير قيم فريدة للمفاتيح الرئيسية له أهمية كبيرة في حفظ سلامة البيانات في قاعدة البيانات. يُفضل استخدام الزيادة التلقائية (AUTOINCREMENT) للمفاتيح الرئيسية لتجنب التعارضات وتحسين أداء الإدراج.

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر