SQLite সহ সমস্ত রিলেশনাল ডাটাবেস সিস্টেমে COMMIT, ROLLBACK, এবং SAVEPOINT ট্রানজেকশন ব্যবস্থাপনার জন্য ব্যবহৃত হয়। এগুলো ডেটার নিরাপত্তা, ট্রানজেকশন নিশ্চিতকরণ এবং ত্রুটির পরে ডেটার পুনরুদ্ধার নিশ্চিত করতে সহায়তা করে।
COMMIT
COMMIT কমান্ডটি ট্রানজেকশনের পরিবর্তনগুলোকে স্থায়ীভাবে ডাটাবেসে সংরক্ষণ করতে ব্যবহৃত হয়। অর্থাৎ, আপনি যদি ডাটাবেসে কোনো পরিবর্তন (যেমন, ইনসার্ট, আপডেট বা ডিলিট) করেন এবং পরে COMMIT করেন, তাহলে সেই পরিবর্তনগুলো ডাটাবেসে স্থায়ীভাবে রেকর্ড হয়ে যাবে।
সিনট্যাক্স:
COMMIT;
ব্যবহার:
BEGIN TRANSACTION;
UPDATE users
SET age = 35
WHERE name = 'Alice';
COMMIT;
এখানে, BEGIN TRANSACTION দিয়ে ট্রানজেকশন শুরু করা হয়েছে এবং পরে COMMIT দিয়ে পরিবর্তনগুলো ডাটাবেসে স্থায়ীভাবে সংরক্ষণ করা হয়েছে।
ROLLBACK
ROLLBACK কমান্ডটি একটি ট্রানজেকশনের সমস্ত পরিবর্তন বাতিল করতে ব্যবহৃত হয়। যদি কোনো সমস্যা ঘটে, বা আপনি যদি চান না যে ট্রানজেকশনের পরিবর্তনগুলো ডাটাবেসে সংরক্ষিত হোক, তবে ROLLBACK কমান্ড ব্যবহার করা হয়।
সিনট্যাক্স:
ROLLBACK;
ব্যবহার:
BEGIN TRANSACTION;
UPDATE users
SET age = 35
WHERE name = 'Alice';
ROLLBACK;
এখানে, BEGIN TRANSACTION দিয়ে ট্রানজেকশন শুরু করা হয়েছে এবং ROLLBACK দিয়ে সেই পরিবর্তনগুলো বাতিল করা হয়েছে, ফলে Alice এর বয়স পরিবর্তন হবে না এবং ডাটাবেসে আগের মানই থাকবে।
SAVEPOINT
SAVEPOINT কমান্ডটি একটি ট্রানজেকশনের ভিতরে একটি নির্দিষ্ট পয়েন্ট নির্ধারণ করতে ব্যবহৃত হয়। এটি আপনাকে পুরো ট্রানজেকশনকে রোলব্যাক না করে নির্দিষ্ট একটি পয়েন্টে ফিরে যেতে সহায়তা করে। এই কমান্ডটি বিশেষভাবে দীর্ঘ ট্রানজেকশনে ব্যবহৃত হয়, যেখানে আপনি কিছু অংশে পরিবর্তন করতে চান এবং যদি কিছু ভুল হয় তবে সেই অংশগুলো ফেরত নেন।
সিনট্যাক্স:
SAVEPOINT savepoint_name;
ব্যবহার:
BEGIN TRANSACTION;
UPDATE users
SET age = 35
WHERE name = 'Alice';
SAVEPOINT before_update;
UPDATE users
SET age = 40
WHERE name = 'Bob';
ROLLBACK TO before_update;
COMMIT;
এখানে, SAVEPOINT before_update দিয়ে একটি সেভ পয়েন্ট তৈরি করা হয়েছে এবং পরবর্তীতে ROLLBACK TO before_update ব্যবহার করে সেই পয়েন্টে ফিরে যাওয়া হয়েছে। এর ফলে Bob এর বয়স পরিবর্তন হয়নি, কিন্তু Alice এর বয়স পরিবর্তন হয়েছে এবং COMMIT দিয়ে পরিবর্তনগুলো ডাটাবেসে স্থায়ীভাবে সংরক্ষিত হয়েছে।
COMMIT, ROLLBACK, এবং SAVEPOINT এর মধ্যে পার্থক্য
- COMMIT:
- সমস্ত পরিবর্তন স্থায়ীভাবে ডাটাবেসে সংরক্ষণ করে এবং ট্রানজেকশন শেষ করে।
- ROLLBACK:
- ট্রানজেকশনের সমস্ত পরিবর্তন বাতিল করে এবং ডাটাবেসকে পূর্ববর্তী অবস্থায় ফিরিয়ে নিয়ে আসে। এটি পুরো ট্রানজেকশন রোলব্যাক করে।
- SAVEPOINT:
- ট্রানজেকশনের মধ্যে একটি নির্দিষ্ট পয়েন্টে ফিরে যেতে সক্ষম করে, যাতে পুরো ট্রানজেকশন রোলব্যাক না করেও আপনি কিছু অংশের পরিবর্তন বাতিল করতে পারেন।
সারাংশ
COMMIT, ROLLBACK, এবং SAVEPOINT SQL ট্রানজেকশন ব্যবস্থাপনার গুরুত্বপূর্ণ কমান্ড। COMMIT ডাটাবেসে পরিবর্তনগুলো স্থায়ীভাবে সংরক্ষণ করে, ROLLBACK পরিবর্তনগুলো বাতিল করে এবং SAVEPOINT ট্রানজেকশনের মধ্যে একটি নির্দিষ্ট পয়েন্ট নির্ধারণ করে যাতে পরে প্রয়োজন হলে সেই পয়েন্টে ফিরে যাওয়া যায়। এই কমান্ডগুলো ব্যবহার করে ডেটা নিরাপত্তা এবং ট্রানজেকশন পরিচালনা করা যায়।
Read more