1576
GB
What is the difference between DELETE and TRUNCATE in terms of transaction log and recoverability?
IN
लेन-देन लॉग और पुनर्प्राप्ति के संदर्भ में DELETE और TRUNCATE के बीच क्या अंतर है?
A
DELETE is always faster than TRUNCATE
DELETE हमेशा TRUNCATE से तेज़ होता है
B
TRUNCATE cannot be rolled back in any DBMS
TRUNCATE को किसी भी DBMS में वापस नहीं लाया जा सकता
C
DELETE and TRUNCATE produce identical transaction log entries
DELETE और TRUNCATE समान लेनदेन लॉग प्रविष्टियाँ उत्पन्न करते हैं
D
DELETE logs each individual row deletion (fully logged) enabling row-level rollback and trigger firing; TRUNCATE uses minimal logging (deallocates entire data pages) making it much faster but in most DBMS still rollbackable within an explicit transaction
पंक्ति-स्तरीय रोलबैक और ट्रिगर फायरिंग को सक्षम करने वाले प्रत्येक व्यक्तिगत पंक्ति विलोपन (पूरी तरह से लॉग) को हटाएं; TRUNCATE न्यूनतम लॉगिंग का उपयोग करता है (संपूर्ण डेटा पृष्ठों को हटा देता है) जिससे यह बहुत तेज़ हो जाता है लेकिन अधिकांश DBMS में अभी भी एक स्पष्ट लेनदेन के भीतर रोलबैक किया जा सकता है
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English)
DELETE: fully logged (each row deletion logged), triggers fire, WHERE clause possible, can be rolled back. TRUNCATE: minimally logged (page deallocation logged, not individual rows), no triggers, no WHERE clause, faster. In PostgreSQL and SQL Server: TRUNCATE CAN be rolled back within an explicit transaction. In MySQL: TRUNCATE always auto-commits.
व्याख्या (हिन्दी)
हटाएं: पूरी तरह से लॉग किया गया (प्रत्येक पंक्ति विलोपन लॉग किया गया), आग ट्रिगर करता है, जहां क्लॉज संभव है, वापस लाया जा सकता है। ट्रंकेट: न्यूनतम रूप से लॉग किया गया (पेज डीलोकेशन लॉग किया गया, व्यक्तिगत पंक्तियाँ नहीं), कोई ट्रिगर नहीं, कोई WHERE क्लॉज नहीं, तेज़। PostgreSQL और SQL सर्वर में: TRUNCATE को एक स्पष्ट लेनदेन में वापस लाया जा सकता है। MySQL में: TRUNCATE हमेशा स्वतः-प्रतिबद्ध होता है।