الفرق بين المراجعتين ل"SQL/replace"

من موسوعة حسوب
< SQL
اذهب إلى التنقل اذهب إلى البحث
 
ط (استبدال النص - '\[\[تصنيف:(.*)\]\]' ب'{{SUBPAGENAME}}')
سطر 103: سطر 103:
 
* [https://dev.mysql.com/doc/refman/5.7/en/replace.html توثيق REPLACE في محرك MySQL]
 
* [https://dev.mysql.com/doc/refman/5.7/en/replace.html توثيق REPLACE في محرك MySQL]
 
* [https://sqlite.org/lang_conflict.html توثيق REPLACE في محرك SQLite]
 
* [https://sqlite.org/lang_conflict.html توثيق REPLACE في محرك SQLite]
[[تصنيف:SQL]]
+
[[تصنيف:SQL|{{SUBPAGENAME}}]]
[[تصنيف:SQL Tables]]
+
[[تصنيف:SQL Tables|{{SUBPAGENAME}}]]

مراجعة 15:44، 28 يناير 2018

هو استعلام يستخدم للقيام بنفس مهمة الاستعلام 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.

مصادر