تواجهني مشكلة اضافة العنصر مرتين على قاعدة البيانات
كيف يمكن حلها
قاعدة البيانات phpmyadmin
حرحبا،
لحل المشكلة يجب أن نخبر mySQL أن الحقل فريد من نوعه بإضافة الخاصية Unique
يمكنك الذهاب لتميم الجدول ووضع check علامة (صح) أو تحديد عند الخاصية Unique مقابل الحقل المطلوب عدم تكراره.
أو برمجيا:
في حال كان الجدول مصمم من قبل نطبق التعليمة التالية:
CREATE UNIQUE INDEX index_name
ON table_name(index_column_1,index_column_2,...);
أو: ALTER TABLE table_name
ADD CONSTRAINT constraint_name UNIQUE KEY(column_1,column_2,...);
أما في حالمشروع جديد يمكننا تطبيق التالي: CREATE TABLE table_name(
...
UNIQUE KEY(index_column_,index_column_2,...)
);
بشكل عام الجدول الذي يحوي حقل الايميل كعنصر فريد يكون: CREATE TABLE IF NOT EXISTS contacts (
id INT AUTO_INCREMENT PRIMARY KEY,
first_name VARCHAR(50) NOT NULL,
last_name VARCHAR(50) NOT NULL,
phone VARCHAR(15) NOT NULL,
email VARCHAR(100) NOT NULL,
UNIQUE KEY unique_email (email)
);
مرحباً يزيد,
إذا كنت تقصد أن العنصر المدخل يتم رفضه في حال كان موجوداً مسبقأً فهذا بسبب أن العمود الذي تتعامل معه يمتلك الخاصية unique أو مميز أي أن محتويات هذا العمود لا يمكن أن تتكرر في أي صف من صفوف نفس الجدول في الداتابيز ,لذا في حال كنت تريد الإحتفاظ بهذه الخاصية فهي تعمل بشكل جيد أما في حال كنت لا تريدها فكل ما عليك فعله هو تعديل الخاصية لهذا العمود ولتعديله نتبع الخطوات التالية:
نقوم بفتح الجدول المراد تعديله.
سنجد في أسفل الجدول جدولا أخر صغير باسم indexes أو فهارس سنلاحظ أنه يحتوي على عنصرين الأول لل id والآخر لاسم العنصر الذي يسبب المشكلة.
نقوم بالضغط على زر drop أو حذف وسيظهر لك رسالة تأكيد على الحذف قل له نعم وستجد أن المشكلة قد حلت.
الصورة أدناه توضح ما هو موجود باللغة الانجليزية في حال كنت تستخدم لغة أخرى.
بالتوفيق.
التعليقات