الأمر START TRANSACTION
< SQL
يُستخدم هذا الأمر للإعلام بالبدء بإجراء مجموعة من العمليات التي قد تنتهي بأمر COMMIT
أو ROLLBACK
، وله الصيغة التالية:
START TRANSACTION;
وتختلف هذه الصيغة باستخدام الكلمة المفتاحية BEGIN
في محرك SQL Server لتصبح:
BEGIN TRANSACTION;
أما في محرك SQLite فهي الكلمة المفتاحية BEGIN
فقط، أيّ:
BEGIN;
وفي محرك Oracle يصبح الأمر على النحو الآتي:
SET TRANSACTION NAME 'name';
ويكون هذا الأمر مسؤولًا عن البدء بالعمليات وتسميتها بآن واحد بالاسم الذي يُحدد عبر name.
مثال
إذا كان الجدول الآتي موجودًا في قاعدة البيانات:
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
لتُجرَى العمليات بعدها (حذف السجلات التي تكون فيها قيمة الفاتورة أكبر من 200) وتُحفَظ التغييرات عبر الأمر COMMIT
:
BEGIN TRANSACTION;
DELETE FROM customers
WHERE Bill>200;
COMMIT;
التوافقية
SQLServer | SQLite | Oracle | PostgreSQL | MySQL |
---|---|---|---|---|
نعم | نعم | نعم | نعم | نعم |