TRUNCATE TABLE कमांड
MySQL में टेबल से **सभी रिकॉर्ड तेजी से हटाने** के लिए TRUNCATE TABLE कमांड का उपयोग करें। यह DELETE से बहुत तेज है क्योंकि यह पंक्ति-दर-पंक्ति नहीं हटाता, बल्कि टेबल को पुनर्निर्मित करता है।
सिंटैक्स
TRUNCATE TABLE yourTableName;
उदाहरण
1. टेबल बनाएं और डेटा डालें
mysql> CREATE TABLE TruncateTableDemo (
-> BookId INT,
-> BookName VARCHAR(200)
-> );
Query OK, 0 rows affected (0.54 sec)
mysql> INSERT INTO TruncateTableDemo VALUES(1001, 'C in Dept');
mysql> INSERT INTO TruncateTableDemo VALUES(1002, 'The C++ Programming');
mysql> INSERT INTO TruncateTableDemo VALUES(1003, 'Let us C');
2. डेटा देखें
mysql> SELECT * FROM TruncateTableDemo;
+--------+---------------------+
| BookId | BookName |
+--------+---------------------+
| 1001 | C in Dept |
| 1002 | The C++ Programming |
| 1003 | Let us C |
+--------+---------------------+
3 rows in set (0.00 sec)
3. सभी रिकॉर्ड हटाएं
mysql> TRUNCATE TABLE TruncateTableDemo;
Query OK, 0 rows affected (0.93 sec)
5. पुष्टि करें
mysql> SELECT * FROM TruncateTableDemo;
Empty set (0.00 sec)
TRUNCATE vs DELETE
| विशेषता | TRUNCATE TABLE | DELETE FROM |
|---|---|---|
| गति | बहुत तेज (टेबल पुनर्निर्माण) | धीमी (पंक्ति-दर-पंक्ति) |
| WHERE क्लॉज | समर्थित नहीं | समर्थित |
| ट्रिगर | नहीं चलते | चलते हैं |
| AUTO_INCREMENT | रीसेट हो जाता है | बना रहता है |
| रोलबैक | नहीं (DDL) | हाँ (DML) |
| विदेशी कुंजी | बाधा हो सकती है | कैस्केड के साथ काम करता है |
कब उपयोग करें?
- TRUNCATE: पूरी टेबल खाली करनी हो, प्रदर्शन महत्वपूर्ण हो, ऑटो-इन्क्रीमेंट रीसेट करना हो
- DELETE: कुछ पंक्तियाँ हटानी हों, ट्रिगर चलाने हों, रोलबैक की आवश्यकता हो, विदेशी कुंजी बाधा हो
नोट: TRUNCATE एक DDL ऑपरेशन है, ट्रांजैक्शन में रोलबैक नहीं किया जा सकता (कुछ इंजन में अपवाद)।