MySQL - كيفية إدراج صف جديد فقط في حالة عدم وجود البيانات

Mysql Kyfyt Adraj Sf Jdyd Fqt Fy Halt Dm Wjwd Albyanat



MySQL هو نظام RDBMS مشهور مفتوح المصدر لتخزين البيانات في قواعد البيانات. يعد إدخال البيانات في جداول قاعدة البيانات مهمة شائعة. في بعض الأحيان ، لا يرغب المستخدمون في إدراج بيانات مكررة للتخلص من التكرار. يسمح MySQL للمستخدمين بإدخال البيانات فقط في حالة عدم وجود بيانات مماثلة بالفعل.

سيناقش هذا المنشور إدراج صف جديد فقط إذا لم تكن البيانات موجودة بالفعل في جدول MySQL. قبل البدء بهذا المنشور ، تأكد من تسجيل الدخول إلى خادم MySQL المحلي الخاص بك واختر قاعدة البيانات التي تريد العمل بها.

أدخل صفًا جديدًا فقط إذا لم تكن البيانات موجودة باستخدام عبارة 'INSERT IGNORE'

حسنًا ، إجابة السؤال في العنوان بسيطة جدًا ومباشرة. ببساطة استخدم ' إدراج 'الكلمة الرئيسية مع' يتجاهل 'الكلمة الرئيسية. سيؤدي هذا إلى التأكد من أن البيانات الجديدة أو استعلام الإدراج يتم تنفيذه فقط في حالة عدم وجود إدخال سابق للبيانات في MySQL. للحصول على لمحة موجزة عن هذا ، ألق نظرة على بناء الجملة التالي:







إدراج يتجاهل داخل [ طاولة - اسم ] ( [ العمود 1 - اسم ] و [ العمود 2 - اسم ] و [ العمود 3 - اسم ] ) قيم ( [ القيمة 1 ] و [ القيمة 2 ] و [ القيمة 3 ] ) ؛

دعونا نرى مثالاً إذا كان المستخدم يريد إدخال قيمة صف ' 1 '،' جون ' و ' ظبية ' في ال ' عميل 'جدول للأعمدة' بطاقة تعريف ، ' الاسم الأول ' و ' اسم العائلة ' على التوالى. قم بتشغيل هذا الاستعلام لإدراج هذه القيم في حالة وجود أي صف به هذه القيم بالفعل:



يختار * من عميل؛
إدراج يتجاهل داخل عميل ( بطاقة تعريف و الاسم الأول و اسم العائلة ) قيم ( 1 و 'جون' و 'ظبية' ) ؛

يحتوي الإخراج على جدولين يعرضان بيانات الجدول قبل تنفيذ الاستعلام وبعده. يمكنك ملاحظة أن لا شيء يتغير في الجدول لأن الصف موجود بالفعل ، لذا نجحت MySQL في تجاهل عملية الإدراج دون عرض الخطأ:







أدخل صفًا جديدًا فقط إذا لم تكن البيانات موجودة باستخدام عبارة 'WHERE NOT EXISTS'

في MySQL ، ' أين لا يوجد 'يمنع إدراج الصفوف إذا كانت موجودة بالفعل في الجدول عند استخدامها في' ادخل في 'مع استعلام فرعي لتحديد شرط. عند استخدام هذا الشرط مع طلب البحث الفرعي ' (حدد * من [اسم الجدول] [اسم العمود] = [التعبير]) ؛ 'يتحقق مما إذا كان هناك صف موجود في الجدول يفي بالشرط. إذا كان هناك صف ، فإن ' حيث لا يوجد 'سترجع قيمة خاطئة ، و' يختار 'بيان لن يعيد أي صفوف. نتيجة لذلك ، لن يتم إدراج الصف في الجدول. يتم توفير بناء الجملة أدناه:

إدراج داخل [ طاولة - اسم ] ( [ العمود 1 - اسم ] و [ العمود 2 - اسم ] و [ العمود 3 - اسم ] )
يختار [ القيمة 1 ] و [ القيمة 2 ] و [ القيمة 3 ]
أين لا EXISTS ( يختار * من [ طاولة - اسم ] [ عمود - اسم ] = [ تعبير ] ) ؛

دعونا نرى مثالاً إذا كان المستخدم يريد إدراج صف في جدول الموظف يحتوي على قيم ' 1 '،' أمريكي ' و ' هنريوت 'في الأعمدة' بطاقة تعريف '،' اسم الشركة ' و ' الاسم ' على التوالى. ولكن فقط إذا كان هناك صف بمعرف ' 1 'غير موجود في الجدول أو أنه غير موجود. في هذه الحالة بالذات ، سيصبح الاستعلام:



يختار * من موظف؛

إدراج داخل موظف ( بطاقة تعريف و اسم الشركة و الاسم )
يختار 1 و 'أمريكي' و هنريوت
أين لا EXISTS ( يختار * من موظف أين بطاقة تعريف = 1 ) ؛

يعرض الإخراج صفًا جديدًا لم يتم إدراجه كصف يحتوي على ' بطاقة تعريف ' يساوي ' 1 ' موجودة بالفعل.

أدخل صفًا جديدًا فقط إذا لم تكن البيانات موجودة باستخدام عبارة 'ON DUPLICATE KEY UPDATE'

حسنًا ، هناك طريقة أخرى وهي استخدام ' عند تحديث مفتاح مكرر 'في MySQL. حيث سيتم استخدام هذه الفقرة مع استعلام 'INSERT INTO' الذي يشكل تنفيذ 'if-else'. هذا يعني أنه سيتم تحديث البيانات الموجودة داخل الجدول فقط إذا كانت فريدة. خلاف ذلك ، لن يحدث أي تغيير. الصيغة العامة لهذا هي كما يلي:

إدراج داخل [ طاولة - اسم ] ( [ العمود 1 - اسم ] و [ العمود 2 - اسم ] و [ العمود 3 - اسم ] ) قيم ( [ القيمة 1 ] و [ القيمة 2 ] و [ القيمة 3 ] )
على ينسخ مفتاح تحديث [ العمود 1 - اسم ] = [ العمود 1 - اسم ] ؛

دعونا نرى مثالاً لإدراج القيم في ' 2 '،' باسكال '،' نيكسون '،' لندن '،' المملكة المتحدة ' و '(171) 555-7788 ' في الطاولة ' عميل 'للأعمدة' بطاقة تعريف '،' الاسم الأول '،' اسم العائلة '،' مدينة '،' دولة ' و ' هاتف ' على التوالى. إذا لم يكن الصف موجودًا بالفعل ، فسيتم إدراجه. خلاف ذلك ، سيتم تحديث القيم حيث ' المعرف = المعرف 'يلتقي الشرط. قم بتشغيل هذا الاستعلام:

يختار * من عميل ؛
إدراج داخل عميل ( بطاقة تعريف و الاسم الأول و اسم العائلة و مدينة و دولة و هاتف )
قيم ( 2 و 'باسكال' و نيكسون و 'لندن' و 'المملكة المتحدة' و '(171) 555-7788' )
على ينسخ مفتاح تحديث بطاقة تعريف = بطاقة تعريف؛

هذا هو الجدول قبل تشغيل الاستعلام ، يمكنك مشاهدة ' بطاقة تعريف ' يساوي ' 2 ' غير موجود:

بعد تشغيل الاستعلام ، سيقوم هذا الاستعلام بإدراج صفوف جديدة في الجدول:

لقد نجحت في إدراج صف جديد ، حيث لم تكن البيانات موجودة قبل تشغيل الاستعلام.

خاتمة

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