استعلام الاستبدال REPLACE

من موسوعة حسوب
< SQL
مراجعة 12:23، 14 يناير 2018 بواسطة Nourtam (نقاش | مساهمات)
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)

هو استعلام يستخدم للقيام بنفس مهمة الاستعلام INSERT (إضافة سجل جديد للجدول) ولكن لإدخال سجلٍ بنفس القيمة الموجودة مسبقًا في عمود المفتاح الأوليّ وذلك منعًا لحدوث التكرار، إذ يُحذف السجل المحتوي لهذه القيمة ليُضاف سجلٌ جديدٌ بدلًا منه، وتكون الصيغة العامة للاستعلام على النحو الآتي:

REPLACE INTO table VALUES (col_name [, col_name] ...);

إذ إن table هو اسم الجدول الذي سيُعدَّل فيه السجل، وتوضع القيم الجديدة ضمن القوسين.

مثال

إن كان الجدول الآتي students موجودًا في قاعدة البيانات:

GPA Age Name StudentID
3.68 25 Mona 1024
3.57 24 Radi 1081
2.50 25 Leen 1012
4.00 26 Sarah 1085
1.96 22 Amin 1066
2.87 23 Yusuf 1056

فلاستبدال السجل ذو الرقم الفريد 1066 (وهو رقم لا يمكن تكراره لأن هذا الحقل يعدّ مفتاحًا أوليًا للجدول) ببياناتٍ متعلقة بطالب آخر يُنفذ الاستعلام الآتي:

REPLACE INTO students VALUES (1066, 'Ahmad', 21, 3.15);

ليصبح الجدول بعد الاستبدال بالشكل الآتي:

GPA Age Name StudentID
3.68 25 Mona 1024
3.57 24 Radi 1081
2.50 25 Leen 1012
4.00 26 Sarah 1085
3.15 21 Ahmad 1066
2.87 23 Yusuf 1056

التوافقية

SQLServer SQLite Oracle PostgreSQL MySQL
لا نعم لا لا نعم

قد يُستفاد من استعلام UPDATE في المحركات التي لا تدعم استعلام الاستبدال REPLACE.

مصادر