الأمر ROLLBACK
< SQL
يستخدم هذا الأمر لإلغاء العمليات المُجراة على قاعدة البيانات مما يعني تجاهل التغييرات التي طرأت عليها.
صيغة الأمر:
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 |
|---|---|---|---|---|
| نعم | نعم | نعم | نعم | نعم |