ড্রপ এবং ট্রুনাক্টের মধ্যে পার্থক্য

Anonim

ড্রপ বনাম ট্র্যাঙ্কেট

ড্রপ এবং ট্রুঙ্কেটকে দুটি এসকিউএল (স্ট্রাকচার্ড কোয়েরি ল্যাঙ্গুয়েজ) বিবৃতিগুলি ডাটাবেস ম্যানেজমেন্ট সিস্টেম, যেখানে আমরা একটি ডাটাবেস থেকে তথ্য রেকর্ড মুছে ফেলতে ইচ্ছুক। ড্রপ এবং ট্রুন্যাকট উভয় বিবৃতি একটি টেবিলের পুরো ডেটা এবং সংশ্লিষ্ট এসকিউএল বিবৃতিটি অপসারণ করে। মুছুন অপারেশনটি এই ক্ষেত্রে কার্যকরী নয় কারণ এটি ড্রপ এবং ট্রুনকেটের চেয়ে বেশি স্টোরেজ স্পেসগুলি ব্যবহার করে।

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

ড্রপ কমান্ড

যেমন আগে উল্লেখ করা হয়েছে, ড্রপ কমান্ডটি টেবিলের সংজ্ঞা এবং তার সমস্ত ডাটা, অখণ্ডতার সীমাবদ্ধতা, সূচী, ট্রিগার এবং অ্যাক্সেসের অধিকারগুলি সরিয়ে দেয়, যা এই বিশেষ টেবিলে তৈরি করা হয়েছিল। তাই এটি সম্পূর্ণরূপে ডাটাবেস থেকে বিদ্যমান বস্তুটি ড্রপ করে এবং অন্যান্য টেবিলের সাথে সম্পর্কগুলি আর কমান্ড চালানোর পরেও কার্যকর হবে না। এছাড়াও এটি ডেটা অভিধান থেকে সারণির সম্পর্কিত সমস্ত তথ্য সরিয়ে দেয় একটি টেবিলে ড্রপ স্টেটমেন্ট ব্যবহার করার জন্য সাধারণত একটি বিশেষ সিনট্যাক্স রয়েছে।

ড্রপ ট্যাব

আমরা কেবল টেবিলের নামের প্রতিস্থাপন করতে চাই যে আমরা ড্রপ কমান্ডের উপরের উদাহরণে ডাটাবেস থেকে মুছে ফেলতে চাই।

এটা উল্লেখ করা গুরুত্বপূর্ণ যে ড্রপ স্টেটমেন্টটি একটি টেবিল মুছে ফেলতে ব্যবহার করা যাবে না, যা ইতিমধ্যেই একটি বিদেশী কী সীমাবদ্ধতার দ্বারা উল্লেখ করা হয়েছে। যে ক্ষেত্রে, বিদেশী কী বলছে রেফারেন্সিং, বা যে নির্দিষ্ট টেবিলের প্রথম বাদ দিতে হবে। এছাড়াও ডাটাবেসের মধ্যে সিস্টেম টেবিলের উপর ড্রপ স্টেটমেন্ট প্রয়োগ করা যাবে না।

ড্রপ কমান্ডটি স্বতঃসিদ্ধ বিবৃতি হিসাবে, একবার চালানো অপারেশনটি পুনরায় চালু করা যাবে না এবং ট্রিগারগুলি চালানো হবে না। যখন একটি টেবিল বাদ দেওয়া হয়, সারণির সমস্ত রেফারেন্স বৈধ হবে না, এবং তাই, আমরা টেবিলের পুনরায় ব্যবহার করতে চাই, এটি সব সংখ্যার সীমাবদ্ধতা এবং অ্যাক্সেস অ্যাক্সেসের সাথে পুনর্নির্মাণ করা প্রয়োজন। অন্যান্য টেবিলের সমস্ত সম্পর্কগুলি আবারও অবস্থিত হতে হবে।

কমান্ড কমান্ড

কমান্ড কমান্ডটি একটি DDL কমান্ড, এবং এটি কোনো ব্যবহারকারী নির্দিষ্ট শর্তাবলী ছাড়া টেবিলের সমস্ত সারিগুলি সরিয়ে দেয়, এবং টেবিল দ্বারা ব্যবহৃত স্থানটি প্রকাশ করে, কিন্তু তার কলাম, সূচী এবং সীমাবদ্ধতার সাথে টেবিলের গঠন একই থাকাটুকরা সারণির তথ্য সংরক্ষণের জন্য ব্যবহৃত ডেটা পৃষ্ঠাগুলিকে ডিলোকেট করে একটি টেবিল থেকে ডেটা সরিয়ে দেয় এবং কেবলমাত্র এই পৃষ্ঠাগুলিগুলি লেনদেন লগে রাখা হয়। তাই এটি অন্যান্য সম্পর্কিত এসকিউএল কমান্ডগুলি যেমন ডিলিটের তুলনায় কম লেনদেন লক সম্পদ এবং সিস্টেম রিসোর্স ব্যবহার করে। সুতরাং Truncate অন্যদের তুলনায় একটু বিট দ্রুত বিবৃতি। ট্রুনেট কমান্ডের জন্য আদর্শ সিনট্যাক্স অনুসরণ করা হচ্ছে

ট্র্যাঙ্ক টেবিল

আমরা সারণির নামের প্রতিস্থাপন করা উচিত, যার থেকে আমরা উপরে ডাটা মুছে ফেলতে চাই, উপরের সিনট্যাক্সে।

ট্রুনকেট একটি টেবিলে ব্যবহার করা যাবে না যা একটি বিদেশী কী সীমাবদ্ধতার দ্বারা উল্লেখ করা হয়েছে। এটা এটি করার আগে স্বয়ংক্রিয়ভাবে একটি কমিট ব্যবহার করে এবং অন্যটি পরে পরে লেনদেনের রোলব্যাক অসম্ভব, এবং কোন ট্রিগার বহিস্কার করা হয়। যদি আমরা টেবিলের পুনঃব্যবহার করতে চাই তবে ডাটাবেসের মধ্যে বিদ্যমান টেবিলের সংজ্ঞাটি অ্যাক্সেস করতে হবে।

ড্রপ এবং ট্রাঙ্কেটের মধ্যে পার্থক্য কি?

ড্রপ এবং ট্রুনকেটে কমান্ডগুলি উভয়ই DDL কমান্ডগুলি এবং স্বয়ংক্রিয়ভাবে বিবৃতিগুলি যাতে এই কমান্ডগুলি ব্যবহার করা লেনদেনগুলিকে ব্যাক করা যাবে না।

ড্রপ এবং ট্রাঙ্কেটের মধ্যে প্রাথমিক পার্থক্য হচ্ছে ড্রপ কমান্ড কেবল সারণির সমস্ত তথ্য নয়, এটি সরিয়ে ফেলা হয়, তবে এটি সমস্ত রেফারেন্স সহ ডাটাবেস থেকে স্থায়ীভাবে টেবিলের গঠনকে সরিয়ে দেয়, যখন ট্রুনকেট কমান্ড শুধুমাত্র সমস্ত সারিগুলি সরিয়ে দেয় একটি টেবিল, এবং এটি টেবিল গঠন এবং তার রেফারেন্স সংরক্ষণ করে।

যদি একটি টেবিল বাদ দেওয়া হয়, তবে অন্য সারণির সাথে সম্পর্কিত সম্পর্কগুলি আর কার্যকর হবে না এবং অখণ্ডতার সীমাবদ্ধতা এবং অ্যাক্সেসের সুযোগগুলি সরানো হবে। সুতরাং টেবিলের পুনঃব্যবহারের প্রয়োজন হলে, এটি সম্পর্ক, সততা সীমাবদ্ধতা, এবং অ্যাক্সেসের অধিকারগুলি পুনর্গঠন করতে হবে। কিন্তু যদি একটি টেবিল ছাঁটা হয়, টেবিল কাঠামো এবং তার সীমাবদ্ধতাগুলি ভবিষ্যতের ব্যবহারের জন্য থাকবে, এবং তাই, পুনর্ব্যবহার করার জন্য উপরের কোনও উৎসবগুলির প্রয়োজন হয় না।

যখন এই কমান্ডগুলি প্রয়োগ করা হয়, তখন আমরা তাদের ব্যবহার করতে সতর্ক থাকতে হবে। এছাড়াও, আমাদের এই কমান্ডের প্রকৃতির উপর একটি ভাল বোঝার থাকা উচিত, কীভাবে তারা কাজ করে, এবং কিছু প্রয়োজনীয় পরিকল্পনাগুলি থেকে বিরত থাকার জন্য তাদের ব্যবহার করার পূর্বে কিছু সতর্কতার পরিকল্পনা করে। অবশেষে, এই কমান্ডগুলি দ্রুত এবং সহজে ডেটাবেস পরিষ্কার করতে ব্যবহার করা যেতে পারে, কম সম্পদ আহরণ।