ডিএমএল বনাম ডিডিএল পার্থক্য তাদের নাম হিসাবে বোঝা যায় না, তাই কিছু সময় কিছুটা জটিল হয়ে যায়।
ওরাকল স্পষ্টতই ধারণা ধারণাগুলিতে ডিডিএল হিসাবে শ্রেণিবদ্ধ করেTRUNCATE
, তবে DELETE
ডিএমএল হিসাবে।
TRUNCATE
ওরাকলের উপর ডিডিএল শিবিরের যে মূল বিষয়গুলি আমি রেখেছি তা হ'ল:
TRUNCATE
স্টোরেজ প্যারামিটারগুলি ( NEXT
প্যারামিটার) পরিবর্তন করতে পারে এবং সেগুলি বস্তুর সংজ্ঞার অংশ - এটি ডিডিএল শিবিরে।
TRUNCATE
একটি অন্তর্নিহিত করে commit
, এবং ফিরে ঘুরিয়ে ফেলা যাবে না (একপাশে ফ্ল্যাশব্যাক) - ওরাকলে সর্বাধিক (সমস্ত?) ডিডিএল অপারেশন এটি করে, কোনও ডিএমএল করে না।
ট্রিগারগুলি TRUNCATE
চালনা করে না এমন ON DELETE
ঘটনাও এটি সাধারণ ডিএমএল অপারেশনগুলি থেকে আলাদা করে দেয় (তবে কিছু সরাসরি পথ ডিএমএল অপারেশনগুলিও ট্রিগারগুলি এড়িয়ে যায়, এটি কোনও সুস্পষ্ট সূচক নয়)।
সেই একই ডকুমেন্টেশন নোটগুলি যা DELETE
ইউএনডিও উত্পন্ন করে, তবে TRUNCATE
তা নয়, সুতরাং আপনার বক্তব্যটি এই ক্ষেত্রে সঠিক। (দ্রষ্টব্য যা TRUNCATE
কিছু উত্পন্ন করে REDO
যাতে পুনরুদ্ধার / পুনরুদ্ধারের ক্ষেত্রে কেটে ফেলা যায়)) তবে কিছু NOLOGGING
ক্রিয়াকলাপ হ্রাসযুক্ত ইউএনডিওও তৈরি করতে পারে (কারও সম্পর্কে কিছুই নিশ্চিত নয়), সুতরাং এটি আমার মতে কোনও সুস্পষ্ট সূচক নয়।
সুতরাং আমি এটি সংক্ষিপ্ত করব:
truncate
"লেনদেনিক" এই অর্থে নয় যে এটি প্রতিশ্রুতিবদ্ধ হয় এবং এটি আবার ঘুরিয়ে দেওয়া যায় না এবং অবজেক্ট স্টোরেজ বৈশিষ্ট্যগুলি সংশোধন করতে পারে। সুতরাং এটি সাধারণ ডিএমএল নয় - ওরাকল এটিকে ডিডিএল হিসাবে শ্রেণিবদ্ধ করে।
delete
এটি একটি সাধারণ ডিএমএল বিবৃতি।