الأمر ROLLBACK

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

يستخدم هذا الأمر لإلغاء العمليات المُجراة على قاعدة البيانات مما يعني تجاهل التغييرات التي طرأت عليها.

صيغة الأمر:

ROLLBACK [TRANSACTION];

وفي محركات SQLite و MySQL و PostgreSQL تمكن العودة إلى نقطة محددة حُفظت مسبقًا، وذلك عبر الأمر:

ROLLBACK TO SAVEPOINT savePointName;

إذ إن savePointName هو اسم نقطة الحفظ التي سيُرجع لها بتجاهل أية تغييرات طرأت بعدها.

مثال

إن كان جدول الزبائن customers موجودًا في قاعدة البيانات على النحو الآتي:

Bill OrderID FullName CustomerID
160 0291 Abd al-Salam Hadi 1156
170 0302 Ahmad Mostafa 1157
210 0203 Reem Hammad 1158
350 0294 Abd Allah Sadiq 1159
185 0255 Raghad al-Hamdan 1160
165 0276 Abd al-Razzaq Salloum 1161
175 0247 Hussam Siraj 1162

فعند تطبيق الاستعلام الآتي:

BEGIN TRANSACTION;  
DELETE FROM customers
WHERE Bill>200;

إذ إن BEGIN TRANSACTION تبدأ بالعملية التي ستحذف السجلات التي قيمة فاتورتها أكبر من 200 (عدد السجلات المحذوفة 2)، وللتراجع عن هذه التعديلات ليُعاد الجدول كما كان يُستخدم الأمر:

ROLLBACK;

التوافقية

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

مصادر