أدخل صفًا إذا لم تكن القيم موجودة بالفعل في Postgresl

Insert Row If Values Don T Already Exist Postgresl



لقد جعلتنا معرفة أنظمة إدارة قواعد البيانات ومعالجتها على دراية بالتغييرات المتعلقة بقواعد البيانات. والذي يتضمن عادةً إنشاء وإدراج وتحديث وحذف وظائف مطبقة على جداول محددة. في المقالة الحالية ، سنرى كيف تدار البيانات بطريقة الإدراج. يجب علينا إنشاء جدول نريد الإدراج فيه. يتم استخدام عبارة الإدراج لإضافة بيانات جديدة في صفوف الجداول. يغطي بيان إدراج PostgreSQL بعض القواعد للتنفيذ الناجح للاستعلام. أولاً ، يجب أن نذكر اسم الجدول متبوعًا بأسماء الأعمدة (السمات) حيث نريد إدراج صفوف. ثانيًا ، يجب علينا إدخال القيم ، مفصولة بفاصلة بعد عبارة VALUE. أخيرًا ، يجب أن تكون كل قيمة بنفس ترتيب توفير تسلسل قوائم السمات أثناء إنشاء جدول معين.

بناء الجملة

>> إدراج إلىاسم الطاولة(العمود 1 ،عمودي) القيم ('القيمة 1' ، 'القيمة 2')؛

هنا ، العمود هو سمات الجدول. يتم استخدام الكلمة الرئيسية VALUE لإدخال القيم. 'القيمة' هي بيانات الجداول المطلوب إدخالها.







إدراج وظائف الصف في غلاف PostgreSQL (psql)

بعد التثبيت الناجح لـ postgresql ، سندخل اسم قاعدة البيانات ورقم المنفذ وكلمة المرور. سيبدأ Psql. سنقوم بعد ذلك بإجراء الاستعلامات على التوالي.





مثال 1: استخدام INSERT لإضافة سجلات جديدة إلى الجداول
بعد بناء الجملة ، سننشئ الاستعلام التالي. لإدراج صف في الجدول ، سننشئ جدولاً باسم customer. يحتوي الجدول المعني على 3 أعمدة. يجب ذكر نوع البيانات لأعمدة معينة لإدخال البيانات في هذا العمود ولتجنب التكرار. الاستعلام لإنشاء جدول هو:





>> يزيد طاولةعميل(هوية شخصيةintواسم فارشار (40)، بلدفارشار (40))؛

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



>> إدراج إلىعميل(هوية شخصية،اسم، بلد) القيم ('1'و'عالية' ، 'باكستان') ؛

بعد كل إدخال ناجح ، سيكون الناتج 0 1 ، مما يعني أنه يتم إدخال صف واحد في كل مرة. في الاستعلام كما ذكرنا سابقًا ، قمنا بإدخال البيانات 4 مرات. لعرض النتائج سوف نستخدم الاستعلام التالي:

>> تحديد*من عندعميل؛

مثال 2: استخدام عبارة INSERT في إضافة صفوف متعددة في استعلام واحد
يتم استخدام نفس الأسلوب في إدخال البيانات ولكن لا يتم إدخال عبارات الإدراج عدة مرات. سنقوم بإدخال البيانات مرة واحدة باستخدام استعلام معين ؛ يتم فصل جميع قيم الصف الواحد عن طريق استخدام الاستعلام التالي ، سنحقق المخرجات المطلوبة

مثال 3: أدخل عدة صفوف في جدول واحد بناءً على أرقام في جدول آخر
يتعلق هذا المثال بإدراج البيانات من جدول إلى آخر. خذ بعين الاعتبار جدولين ، أ وب. يحتوي الجدول أ على سمتين ، أي الاسم والفئة. من خلال تطبيق استعلام CREATE ، سنقدم جدولاً. بعد إنشاء الجدول ، سيتم إدخال البيانات باستخدام استعلام إدراج.

>> يزيد طاولةإلى(اسم فارشار (30)وصف دراسي فارشار (40))؛
>> إدراج إلىإلىالقيم ('آمنة' ،1)و('bhishma'، '2')و('جافيد' ، '3')و('تحت'،4')؛

يتم إدخال أربع قيم في الجدول باستخدام نظرية التجاوز. يمكننا التحقق باستخدام بيانات التحديد.

وبالمثل ، سننشئ الجدول ب ، الذي يحتوي على سمات لجميع الأسماء والموضوعات. سيتم تطبيق نفس الاستعلامين لإدراج وجلب السجل من الجدول المقابل.

>> يزيد طاولةب(جميع الأسماء varchar(30)، varchar الموضوع(70))؛

إحضار السجل عن طريق اختيار النظرية.

>> تحديد*من عندب؛

لإدراج قيم الجدول ب في الجدول ، سنستخدم الاستعلام التالي. سيعمل هذا الاستعلام بطريقة تجعل جميع الأسماء في الجدول ب سيتم إدراجها في الجدول إلى مع حساب الأرقام التي تظهر عدد تكرارات رقم معين في العمود المعني من الجدول ب . تمثل b.allnames وظيفة الكائن لتحديد الجدول. تعمل وظيفة Count (b.allnames) لحساب التكرار الإجمالي. نظرًا لحدوث كل اسم مرة واحدة ، سيحتوي العمود الناتج على رقم واحد.

>> إدراج إلىإلى(اسموصف دراسي) تحديدب - ألقاب عدد(ب - الأسماء) من عندبمجموعة بواسطةب - الأسماء.

مثال 4: أدخل البيانات في الصفوف إذا لم تكن موجودة
يستخدم هذا الاستعلام لإدخال الصفوف إذا لم يكن موجودًا. أولاً ، يتحقق الاستعلام المقدم مما إذا كان الصف موجودًا بالفعل أم لا. إذا كانت موجودة بالفعل ، فلن تتم إضافة البيانات. وإذا لم تكن البيانات موجودة على التوالي ، فسيتم تعليق الإدراج الجديد. هنا tmp هو متغير مؤقت يستخدم لتخزين البيانات لبعض الوقت.

>> إدراج إلىب(allnames ، الموضوع) تحديد*من عند (تحديد'كينزا'كماallnames, ‘islamiat’كماموضوعات) كماtmpأين ليس موجود ( تحديدجميع الأسماءمن عندبأينجميع الأسماء='سندس'حد 1)؛

مثال 5: PostgreSQL Upsert باستخدام عبارة INSERT
هذه الوظيفة لها نوعان:

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

في البداية ، سنشكل جدولًا يحتوي على بعض البيانات النموذجية.

>> يزيد طاولةtbl2(هوية شخصيةذكاء الأولية مفتاحواسم اختلاف الحرف)؛

بعد إنشاء الجدول ، سنقوم بإدخال البيانات في الجدول tbl2 باستخدام الاستعلام:

>> إدراج إلىtbl2القيم (1وعظمة)و(2و'عبد')و(3و'هامنة')و(4و'فاطمة')و(5و'شيزا')و(6و'javeria') ؛

في حالة حدوث تعارض ، قم بتحديث:

>>إدراج إلىtbl2القيم (8و'يركب') تشغيلنزاع(هوية شخصية) فعل تحديث يضع اسم=مستبعد.اسم؛

في البداية ، سنقوم بإدخال البيانات باستخدام استعلام التعارض للمعرف 8 والاسم Rida. سيتم استخدام نفس الاستعلام بعد نفس المعرف ؛ سيتم تغيير الاسم. ستلاحظ الآن كيف سيتم تغيير الأسماء على نفس المعرف في الجدول.

>> إدراج إلىtbl2القيم (8و'عمل') تشغيلنزاع(هوية شخصية) فعل تحديث يضع اسم =مستبعد.اسم؛

لقد وجدنا أن هناك تعارضًا في المعرف 8 ، لذلك يتم تحديث الصف المحدد.

في حالة حدوث تعارض ، لا تفعل شيئًا

>> إدراج إلىtbl2القيم (9وحراء) تشغيلنزاع(هوية شخصية) فعل ولا شيء؛

باستخدام هذا الاستعلام ، يتم إدراج صف جديد. بعد ذلك ، سوف نستخدم نفس الاستعلام لمعرفة التعارض الذي حدث.

>>إدراج إلىtbl2القيم (9وحراء) تشغيلنزاع(هوية شخصية) فعل ولا شيء؛

وفقًا للصورة أعلاه ، سترى أنه بعد تنفيذ الاستعلام ، يظهر INSERT 0 0 عدم إدخال أي بيانات.

استنتاج

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