logo

استبدال ماي إس كيو إل

عبارة REPLACE في MySQL هي امتداد لمعيار SQL. تعمل هذه العبارة بنفس طريقة عبارة INSERT، باستثناء أنه إذا كان الصف القديم يطابق السجل الجديد في الجدول لمفتاح أساسي أو فهرس فريد، فإن هذا الأمر يحذف الصف القديم قبل إضافة الصف الجديد.

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

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

في عبارة REPLACE، تم تنفيذ التحديث في خطوتين. أولاً، سيتم حذف السجل الموجود، ثم تتم إضافة السجل المحدث حديثًا، على غرار أمر INSERT القياسي. وبالتالي، يمكننا القول أن عبارة REPLACE تؤدي وظيفتين قياسيتين، يمسح و إدراج .

بناء الجملة

اختبار البرمجيات

فيما يلي بناء الجملة يستبدل بيان في ماي إس كيو إل :

 REPLACE [INTO] table_name(column_list) VALUES(value_list); 

مثال استبدال MySQL

دعونا نفهم عمل عبارة REPLACE في MySQL بمساعدة مثال. أولا، سنقوم بإنشاء جدول اسمه 'شخص' باستخدام العبارة التالية:

تحميل فيديوهات اليوتيوب على برنامج vlc
 CREATE TABLE Person ( ID int AUTO_INCREMENT PRIMARY KEY, Name varchar(45) DEFAULT NULL, Email varchar(45) DEFAULT NULL UNIQUE, City varchar(25) DEFAULT NULL ); 

بعد ذلك، نحتاج إلى ملء السجل في الجدول باستخدام الأمر إدراج البيان على النحو التالي:

 INSERT INTO Person(ID, Name, Email, City) VALUES (1,'Mike', '[email protected]', 'California'), (2, 'Alexandar', '[email protected]', 'New York'), (3, 'Adam', '[email protected]', 'Los Angeles'), (4, 'Peter', '[email protected]', 'Alaska'); 

تنفيذ يختار بيان للتحقق من السجلات التي يمكن أن تظهر في الإخراج أدناه:

استبدال ماي إس كيو إل

بعد التحقق من البيانات في جدول، يمكننا استبدال أي صف قديم بالصف الجديد باستخدام عبارة REPLACE. قم بتنفيذ البيان أدناه الذي يقوم بتحديث ملف مدينة الشخص الذي هويته 4 .

 REPLACE INTO Person (id, city) VALUES(4,'Amsterdam'); 

بعد التنفيذ الناجح للبيان أعلاه، يلزم الاستعلام عن بيانات الجدول Person مرة أخرى للتحقق من الاستبدال.

بيثون سلسلة f
استبدال ماي إس كيو إل

القيمة في اسم و بريد إلكتروني الأعمدة هي باطل الآن. وذلك لأن عبارة REPLACE تعمل على النحو التالي:

  • يحاول هذا البيان أولاً إدراج صف جديد في جدول الأشخاص. ولكن فشل إدراج صف جديد لأن المعرف = 4 موجود بالفعل في الجدول.
  • لذا، تقوم هذه العبارة أولاً بحذف الصف الذي يساوي معرّفه 4، ثم تُدرج صفًا جديدًا يحمل نفس المعرّف والمدينة مثل أمستردام. نظرًا لأننا لم نحدد قيمة عمود الاسم والبريد الإلكتروني، فقد تم ضبطها على NULL.

بيان MySQL REPLACE لتحديث صف

يمكننا استخدام عبارة REPLACE التالية لتحديث بيانات الصف إلى جدول:

 REPLACE INTO table SET column1 = value1, column2 = value2; 

بناء الجملة أعلاه يشبه تحديث البيان باستثناء الكلمة الأساسية REPLACE. تجدر الإشارة إلى أنه لا يمكننا استخدام جملة WHERE مع هذا البيان.

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

 REPLACE INTO Person SET ID = 1, Name = 'Mike', City = 'Birmingham'; 

بعد التحقق من الجدول يمكننا أن نرى النتيجة التالية:

استبدال ماي إس كيو إل

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

استبدال MySQL لإدراج البيانات من عبارة SELECT.

يمكننا استخدام عبارة REPLACE INTO التالية لإدراج البيانات في جدول مع إرجاع البيانات من الاستعلام.

 REPLACE INTO table1(column_list) SELECT column_list FROM table2 WHERE condition; 

تجدر الإشارة إلى أن الاستعلام REPLACE أعلاه مشابه للاستعلام أدخل في التحديد إفادة. قم بتنفيذ المثال أدناه الذي يستخدم عبارة REPLACE INTO لنسخ صف داخل نفس الجدول.

باش تقسيم السلسلة بواسطة محدد
 REPLACE INTO Person(Name, City) SELECT Name, City FROM Person WHERE id = 2; 

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

استبدال ماي إس كيو إل