الفرق بين المراجعتين لصفحة: «SQL/rollback»
< SQL
لا ملخص تعديل |
ط استبدال النص - '\[\[تصنيف:(.*)\]\]' ب'{{SUBPAGENAME}}' |
||
سطر 84: | سطر 84: | ||
* [https://sqlite.org/lang_transaction.html توثيق ROLLBACK في محرك SQLite] | * [https://sqlite.org/lang_transaction.html توثيق ROLLBACK في محرك SQLite] | ||
* [https://docs.microsoft.com/en-us/sql/t-sql/language-elements/rollback-transaction-transact-sql توثيق ROLLBACK في محرك SQLServer] | * [https://docs.microsoft.com/en-us/sql/t-sql/language-elements/rollback-transaction-transact-sql توثيق ROLLBACK في محرك SQLServer] | ||
[[تصنيف:SQL]] | [[تصنيف:SQL|{{SUBPAGENAME}}]] | ||
[[تصنيف:SQL Transactions]] | [[تصنيف:SQL Transactions|{{SUBPAGENAME}}]] |
المراجعة الحالية بتاريخ 15:44، 28 يناير 2018
يستخدم هذا الأمر لإلغاء العمليات المُجراة على قاعدة البيانات مما يعني تجاهل التغييرات التي طرأت عليها.
صيغة الأمر:
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 |
---|---|---|---|---|
نعم | نعم | نعم | نعم | نعم |