ড্রপ বনাম ট্রাঙ্কেট
ড্রপ এবং ট্রানকেট হল দুটি এসকিউএল (স্ট্রাকচার্ড কোয়েরি ল্যাঙ্গুয়েজ) স্টেটমেন্ট যা ডেটাবেস ম্যানেজমেন্ট সিস্টেমে ব্যবহৃত হয়, যেখানে আমরা ডাটাবেস থেকে ডেটা রেকর্ড মুছে ফেলতে চাই। ড্রপ এবং ট্রাঙ্কেট উভয় স্টেটমেন্টই একটি টেবিলের সম্পূর্ণ ডেটা এবং সম্পর্কিত SQL স্টেটমেন্ট সরিয়ে দেয়। এই ক্ষেত্রে ডিলিট অপারেশন কার্যকর নয় কারণ এটি ড্রপ এবং ট্রাঙ্কেটের চেয়ে বেশি স্টোরেজ স্পেস ব্যবহার করে।
যদি, আমরা যদি একটি ডাটাবেসের একটি টেবিলকে তার সমস্ত ডেটা সহ সম্পূর্ণভাবে বাতিল করতে চাই, তাহলে এসকিউএল আমাদের সহজেই ড্রপ স্টেটমেন্ট ব্যবহার করে এটি সম্পাদন করতে দেয়। ড্রপ কমান্ড হল একটি ডিডিএল (ডেটা ডেফিনিশন ল্যাঙ্গুয়েজ) কমান্ড এবং এটি একটি বিদ্যমান ডাটাবেস, টেবিল, সূচক বা ভিউ ধ্বংস করতে ব্যবহার করা যেতে পারে।এটি একটি টেবিলের সম্পূর্ণ তথ্য মুছে দেয়, সেইসাথে ডাটাবেস থেকে টেবিল গঠন। এছাড়াও, আমরা একটি টেবিলের সমস্ত ডেটা সহজভাবে পরিত্রাণ পেতে চাই, কিন্তু টেবিল ছাড়াই, এবং আমরা এই ধরনের পরিস্থিতিতে SQL এ ট্রানকেট স্টেটমেন্ট ব্যবহার করতে পারি। ট্রাঙ্কেটও একটি ডিডিএল কমান্ড এবং এটি একটি টেবিলের সমস্ত সারি মুছে দেয় তবে ভবিষ্যতে ব্যবহারের জন্য টেবিলের সংজ্ঞাটি একইভাবে সংরক্ষণ করে৷
ড্রপ কমান্ড
আগে উল্লিখিত হিসাবে, ড্রপ কমান্ড টেবিলের সংজ্ঞা এবং এর সমস্ত ডেটা, অখণ্ডতার সীমাবদ্ধতা, সূচী, ট্রিগার এবং অ্যাক্সেসের সুবিধাগুলি সরিয়ে দেয়, যা সেই নির্দিষ্ট টেবিলে তৈরি করা হয়েছিল। সুতরাং এটি ডাটাবেস থেকে বিদ্যমান বস্তুটিকে সম্পূর্ণরূপে ড্রপ করে, এবং অন্যান্য টেবিলের সাথে সম্পর্কগুলিও কমান্ডটি কার্যকর করার পরে আর বৈধ হবে না। এছাড়াও এটি ডেটা অভিধান থেকে টেবিল সম্পর্কে সমস্ত তথ্য সরিয়ে দেয়। টেবিলে ড্রপ স্টেটমেন্ট ব্যবহার করার জন্য সাধারণ সিনট্যাক্স নিচে দেওয়া হল।
ড্রপ টেবিল
ড্রপ কমান্ডের উপরের নমুনাতে ডাটাবেস থেকে আমরা যে টেবিলের নামটি সরাতে চাই তা আমাদের কেবল প্রতিস্থাপন করতে হবে।
এটা উল্লেখ করা গুরুত্বপূর্ণ যে ড্রপ স্টেটমেন্ট একটি টেবিল মুছে ফেলার জন্য ব্যবহার করা যাবে না, যা ইতিমধ্যেই একটি বিদেশী কী সীমাবদ্ধতার দ্বারা উল্লেখ করা হয়েছে। সেই ক্ষেত্রে, রেফারেন্সিং বিদেশী কী সীমাবদ্ধতা, বা সেই নির্দিষ্ট টেবিলটি প্রথমে বাদ দিতে হবে। এছাড়াও, ডাটাবেসের সিস্টেম টেবিলে ড্রপ স্টেটমেন্ট প্রয়োগ করা যাবে না।
ড্রপ কমান্ডটি একটি স্বয়ংক্রিয় প্রতিশ্রুতি হিসাবে, একবার গুলি চালানোর অপারেশনটি রোল ব্যাক করা যাবে না এবং কোনও ট্রিগার ফায়ার করা হবে না। যখন একটি টেবিল বাদ দেওয়া হয়, টেবিলের সমস্ত রেফারেন্স বৈধ হবে না, এবং তাই, যদি আমরা আবার টেবিলটি ব্যবহার করতে চাই, তাহলে এটিকে সমস্ত অখণ্ডতার সীমাবদ্ধতা এবং অ্যাক্সেসের সুবিধাগুলির সাথে পুনরায় তৈরি করতে হবে। অন্যান্য টেবিলের সমস্ত সম্পর্ককেও আবার অবস্থান করতে হবে।
ট্রাঙ্কেট কমান্ড
Truncate কমান্ড হল একটি DDL কমান্ড, এবং এটি কোনও ব্যবহারকারীর নির্দিষ্ট শর্ত ছাড়াই একটি টেবিলের সমস্ত সারি সরিয়ে দেয় এবং টেবিলের দ্বারা ব্যবহৃত স্থানটি ছেড়ে দেয়, তবে এর কলাম, সূচী এবং সীমাবদ্ধতা সহ টেবিলের কাঠামো একই থাকে।ট্রাঙ্কেট টেবিলের ডেটা সংরক্ষণ করতে ব্যবহৃত ডেটা পৃষ্ঠাগুলি ডিললোকেটিং করে একটি টেবিল থেকে ডেটা সরিয়ে দেয় এবং শুধুমাত্র এই পৃষ্ঠাগুলি ডিললোকেশনগুলি লেনদেন লগে রাখা হয়৷ তাই এটি মুছে ফেলার মত অন্যান্য সম্পর্কিত SQL কমান্ডের তুলনায় কম লেনদেন লগ সম্পদ এবং সিস্টেম সম্পদ ব্যবহার করে। তাই Truncate হল অন্যদের তুলনায় একটু দ্রুত বিবৃতি। ট্রানকেট কমান্ডের জন্য সাধারণ সিনট্যাক্স নিচে দেওয়া হল।
ছাঁটা টেবিল
আমাদের টেবিলের নামটি প্রতিস্থাপন করা উচিত, যেখান থেকে আমরা উপরের সিনট্যাক্সে সম্পূর্ণ ডেটা মুছে ফেলতে চাই।
একটি বিদেশী কী সীমাবদ্ধতা দ্বারা উল্লেখ করা হয়েছে এমন একটি টেবিলে ট্রাঙ্কেট ব্যবহার করা যাবে না। এটি কাজ করার আগে স্বয়ংক্রিয়ভাবে একটি প্রতিশ্রুতি ব্যবহার করে এবং পরে অন্য একটি প্রতিশ্রুতি ব্যবহার করে তাই লেনদেনের রোলব্যাক করা অসম্ভব, এবং কোনও ট্রিগার গুলি করা হয় না। আমরা যদি টেবিলটি পুনরায় ব্যবহার করতে চাই তবে আমাদের শুধুমাত্র ডাটাবেসের বিদ্যমান টেবিলের সংজ্ঞাটি অ্যাক্সেস করতে হবে।
ড্রপ এবং ট্রাঙ্কেটের মধ্যে পার্থক্য কী?
ড্রপ এবং ট্রানকেট উভয় কমান্ডই ডিডিএল কমান্ড এবং অটো কমিট স্টেটমেন্ট তাই এই কমান্ডগুলি ব্যবহার করে সঞ্চালিত লেনদেনগুলি ফিরিয়ে আনা যাবে না।
ড্রপ এবং ট্রানকেটের মধ্যে প্রাথমিক পার্থক্য হল যে ড্রপ কমান্ড শুধুমাত্র একটি টেবিলের সমস্ত ডেটাই সরিয়ে দেয় না, তবে এটি সমস্ত রেফারেন্স সহ ডাটাবেস থেকে টেবিলের কাঠামোকে স্থায়ীভাবে সরিয়ে দেয়, যখন ট্রানকেট কমান্ড শুধুমাত্র সমস্তগুলিকে সরিয়ে দেয়। একটি টেবিলের সারি, এবং এটি টেবিলের গঠন এবং এর রেফারেন্স সংরক্ষণ করে।
যদি একটি টেবিল বাদ দেওয়া হয়, অন্য টেবিলের সাথে সম্পর্ক আর বৈধ থাকবে না, এবং অখণ্ডতার সীমাবদ্ধতা এবং অ্যাক্সেসের সুবিধাগুলিও সরানো হবে৷ তাই যদি টেবিলটি পুনঃব্যবহারের প্রয়োজন হয়, তবে এটি সম্পর্ক, অখণ্ডতার সীমাবদ্ধতা এবং অ্যাক্সেসের সুবিধাগুলির সাথে পুনর্গঠন করতে হবে। কিন্তু যদি একটি টেবিল কাটা হয়, তাহলে টেবিলের কাঠামো এবং এর সীমাবদ্ধতাগুলি ভবিষ্যতে ব্যবহারের জন্য থেকে যায় এবং তাই, উপরোক্ত কোনো বিনোদন পুনরায় ব্যবহারের জন্য প্রয়োজন হয় না।
যখন এই কমান্ডগুলি প্রয়োগ করা হয়, আমাদের অবশ্যই সেগুলি ব্যবহারে সতর্ক থাকতে হবে৷ এছাড়াও, আমাদের এই কমান্ডগুলির প্রকৃতি সম্পর্কে আরও ভালভাবে বোঝা উচিত, তারা কীভাবে কাজ করে এবং প্রয়োজনীয় জিনিসগুলি হারিয়ে যাওয়া থেকে রক্ষা করার জন্য তাদের ব্যবহার করার আগে কিছু সতর্ক পরিকল্পনা করা উচিত।অবশেষে, এই দুটি কমান্ডই ডাটাবেসগুলিকে দ্রুত এবং সহজে পরিষ্কার করতে ব্যবহার করা যেতে পারে, কম সংস্থানগুলি ব্যবহার করে৷