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

MySQL TRUNCATE और DELETE कमांड में अंतर

जैसा कि हम जानते हैं, TRUNCATE डेटाबेस से टेबल की संरचना हटाए बिना सभी पंक्तियों को हटा देगा। वही काम DELETE कमांड की मदद से टेबल से सभी पंक्तियों को हटाकर किया जा सकता है। लेकिन दोनों कमांड के बीच PRIMARY KEY AUTO_INCREMENT के पुनः आरंभीकरण (re-initialization) का महत्वपूर्ण अंतर है।

मान लीजिए एक कॉलम को 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)

mysql> SELECT * FROM testing;
+----+---------+
| Id | Name    |
+----+---------+
| 1  | Gaurav  |
| 2  | Rahul   |
| 3  | Aarav   |
| 4  | Yashraj |
| 5  | Manak   |
+----+---------+

mysql> DELETE FROM testing WHERE id >= 4;
Query OK, 2 rows affected (0.04 sec)

mysql> INSERT INTO testing(Name) VALUES('Harshit'),('Lovkesh');
Query OK, 2 rows affected (0.06 sec)

mysql> SELECT * FROM testing;
+----+---------+
| Id | Name    |
+----+---------+
| 1  | Gaurav  |
| 2  | Rahul   |
| 3  | Aarav   |
| 6  | Harshit |
| 7  | Lovkesh |
+----+---------+


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)

mysql> SELECT * FROM testing;
+----+---------+
| Id | Name    |
+----+---------+
| 1  | Harshit |
| 2  | Lovkesh |
| 3  | Ram     |
| 4  | Gaurav  |
+----+---------+

मुख्य अंतर सारांश:

विशेषताDELETETRUNCATE
AUTO_INCREMENT रीसेटनहींहाँ
WHERE क्लॉजसमर्थितसमर्थित नहीं
ट्रिगर फायरहाँनहीं
रोलबैक संभवहाँ (ट्रांजेक्शन में)नहीं
गतिधीमीतेज
  1. - MySQL में TINYINT(1) और Boolean में क्या अंतर है?

    MySQL में TINYINT(1) और Boolean: कोई अंतर नहीं MySQL में BOOLEAN (या BOOL) वास्तव में TINYINT(1) का एक पर्याय (synonym) है। दोनों आंतरिक रूप से समान हैं। प्रदर्शन: Boolean कॉलम वास्तव में TINYINT(1) बनाता है CREATE TABLE DemoTable ( isMarried BOOLEAN ); DESC DemoTable; आउटपुट: +-----------+--

  1. - MySQL में != NULL और IS NOT NULL का अंतर

    NULL तुलना: != NULL बनाम IS NOT NULL MySQL में किसी मान की तुलना !=NULL से करने पर परिणाम NULL होता है, इसलिए !=NULL अर्थहीन है। सही तरीका IS NOT NULL है। टेबल बनाएं और डेटा डालें: mysql> create table DemoTable1970 ( Value int ); Query OK, 0 rows affected (0.00 sec) mysql> insert into DemoTabl

  1. - MySQL में AND और OR ऑपरेटर का अंतर पंक्तियाँ प्राप्त करते समय

    अंतर AND: दोनों शर्तें TRUE होनी चाहिए। OR: कम से कम एक शर्त TRUE होनी चाहिए। उदाहरण टेबल insert into demo70(name,age) values(John,23), (David,21), (Mike,22), (Chris,20), (John,24), (David,22); OR क्वेरी: name=John OR age=22 select * from demo70 where name=John or age=22; +----+-------+------