Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> MySql

MySQL TRUNCATE और DELETE कमांड में क्या अंतर है?

<घंटा/>

जैसा कि हम जानते हैं कि TRUNCATE डेटाबेस से टेबल की संरचना को हटाए बिना सभी पंक्तियों को हटा देगा। तालिका से सभी पंक्तियों को हटाने पर DELETE कमांड की सहायता से समान कार्य किया जा सकता है। लेकिन दोनों कमांड के बीच PRIMARY KEY AUTO_INCREMENT के री-इनिशियलाइज़ेशन का एक महत्वपूर्ण अंतर है।

मान लीजिए कि एक कॉलम को AUTO_INCREMENT परिभाषित किया गया है जिसमें PRIMARY KEY CONSTRAINT है, तो DELETE कमांड के साथ सभी पंक्तियों को हटाने पर टेबल को फिर से इनिशियलाइज़ नहीं किया जाएगा यानी नई पंक्तियों में प्रवेश करने पर, AUTO_INCREMENT नंबर अंतिम सम्मिलित पंक्ति के बाद शुरू होगा। इसके विपरीत, TRUNCATE का उपयोग करने पर, तालिका एक नई बनाई गई तालिका की तरह पुन:प्रारंभ हो जाएगी। इसका मतलब है कि TRUNCATE कमांड का उपयोग करने के बाद और नई पंक्तियाँ डालने पर AUTO_INCREMENT नंबर 1 से शुरू होगा।

उदाहरण

निम्नलिखित उदाहरण उपरोक्त अवधारणा को प्रदर्शित करेगा -

mysql> Create table Testing(Id INT PRIMARY KEY NOT NULL AUTO_INCREMENT, Name Varchar(20));
Query OK, 0 rows affected (0.15 sec)

mysql> Insert into testing(Name) values('Gaurav'),('Rahul'),('Aarav'),('Yashraj'),('Manak');
Query OK, 5 rows affected (0.09 sec)
Records: 5 Duplicates: 0 Warnings: 0

mysql> Select * from testing;

+----+---------+
| Id | Name    |
+----+---------+
| 1  | Gaurav  |
| 2  | Rahul   |
| 3  | Aarav   |
| 4  | Yashraj |
| 5  | Manak   |
+----+---------+

5 rows in set (0.00 sec)

mysql> Delete from testing where id >=4;
Query OK, 2 rows affected (0.04 sec)

mysql> Select * from testing;

+----+--------+
| Id | Name   |
+----+--------+
| 1  | Gaurav |
| 2  | Rahul  |
| 3  | Aarav  |
+----+--------+

3 rows in set (0.00 sec)

mysql> Insert into testing(Name) values('Harshit'),('Lovkesh');
Query OK, 2 rows affected (0.06 sec)
Records: 2 Duplicates: 0 Warnings: 0

mysql> Select * from testing;

+----+---------+
| Id | Name    |
+----+---------+
| 1  | Gaurav  |
| 2  | Rahul   |
| 3  | Aarav   |
| 6  | Harshit |
| 7  | Lovkesh |
+----+---------+

5 rows in set (0.00 sec)

mysql> Truncate table testing;
Query OK, 0 rows affected (0.10 sec)

mysql> Insert into testing(Name) values('Harshit'),('Lovkesh'),('Ram'),('Gaurav');
Query OK, 4 rows affected (0.11 sec)
Records: 4 Duplicates: 0 Warnings: 0

mysql> Select * from testing;

+----+---------+
| Id | Name    |
+----+---------+
| 1  | Harshit |
| 2  | Lovkesh |
| 3  | Ram     |
| 4  | Gaurav  |
+----+---------+

4 rows in set (0.00 sec)

  1. MySQL में TINYINT(1) और बूलियन में क्या अंतर है?

    टिन्यिनट (1) और बूलियन के बीच कोई अंतर नहीं है। कीवर्ड बूल या बूलियन आंतरिक रूप से TINYINT(1) में परिवर्तित हो जाता है या हम कह सकते हैं कि बूल या बूलियन TINYINT(1) का पर्याय हैं। आइए पहले एक टेबल बनाएं - टेबल बनाएं DemoTable(ismared Boolean);क्वेरी ओके, 0 पंक्तियाँ प्रभावित (1.77 सेकंड) आइए तालि

  1. MySQL में !=NULL और IS NOT NULL में क्या अंतर है?

    यदि आप किसी मान की तुलना !=NULL से करते हैं तो यह NULL देता है। तो, !=NULL अर्थहीन है। !=NULL और IS NOT NULL के बीच अंतर देखने के लिए, आइए पहले एक टेबल बनाएं। आइए पहले एक टेबल बनाएं - टेबल बनाएं DemoTable1970 (वैल्यू इंट);क्वेरी ओके, 0 पंक्तियाँ प्रभावित (0.00 सेकंड) इंसर्ट कमांड का उपयोग करके टे

  1. पंक्तियों को पुनः प्राप्त करते समय MySQL में AND, OR ऑपरेटर के बीच क्या अंतर है?

    AND, OR के बीच का अंतर यह है कि समग्र स्थिति के सही होने के लिए AND दोनों स्थितियों का मूल्यांकन सही होना चाहिए। समग्र स्थिति के सही होने के लिए OR मूल्यांकन करता है कि एक शर्त सही होनी चाहिए। आइए एक टेबल बनाएं - mysql> create table demo70 −> ( −> id int not null auto_increment