Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

MySQL में टेबल को कैसे छोटा करें

कभी-कभी आपको MySQL डेटाबेस में किसी तालिका में सभी पंक्तियों को हटाने की आवश्यकता हो सकती है। TRUNCATE TABLE, DROP TABLE और DELETE स्टेटमेंट का उपयोग करके इसे करने के कई तरीके हैं। इस लेख में, हम देखेंगे कि MySQL TRUNCATE TABLE स्टेटमेंट का उपयोग करके MySQL में टेबल को कैसे छोटा करें।

MySQL में टेबल को कैसे छोटा करें

यहां TRUNCATE TABLE स्टेटमेंट का उपयोग करके MySQL में टेबल को छोटा करने का तरीका बताया गया है। यहाँ MySQL TRUNCATE TABLE स्टेटमेंट का सिंटैक्स दिया गया है।

TRUNCATE [TABLE] table_name;

उपरोक्त क्वेरी में, आपको table_name. के स्थान पर अपने तालिका नाम को छोटा करने के लिए निर्दिष्ट करना होगा।

TRUNCATE के बाद कीवर्ड TABLE वैकल्पिक है।

बोनस पढ़ें :MySQL ड्रॉप व्यू

MySQL TRUNCATE TABLE उदाहरण

मान लें कि आपके पास आदेश तालिका है MySQL में।

mysql> create table daily_orders(id int, order_date date,amount int);

mysql> insert into daily_orders(id, order_date, amount) 
       values(1, '2020-07-01',250),(2,'2020-07-02',320),
       (3,'2020-07-03',450);

mysql> select * from daily_orders;
+------+------------+--------+
| id   | order_date | amount |
+------+------------+--------+
|    1 | 2020-07-01 |    250 |
|    2 | 2020-07-02 |    320 |
|    3 | 2020-07-03 |    450 |
+------+------------+--------+

यहाँ MySQL में तालिका को छोटा करने के लिए SQL क्वेरी है।

mysql> truncate table daily_orders;

mysql> select * from daily_orders;
Empty set (0.00 sec)

बोनस पढ़ें :MySQL में इंडेक्स कैसे बनाएं

MySQL TRUNCATE बनाम DELETE

TRUNCATE TABLE MySQL में DELETE स्टेटमेंट के समान है। हालाँकि, कुछ प्रमुख अंतर हैं। यहाँ MySQL में TRUNCATE और DELETE के बीच का अंतर है।

MySQL DELETE

  • DELETE एक डेटा मैनिपुलेशन लैंग्वेज (DML) स्टेटमेंट है। यह एक समय में एक पंक्ति को हटाता है। इसलिए इसे रो लॉक का उपयोग करके निष्पादित किया जाता है, और प्रत्येक पंक्ति को हटाने के लिए लॉक किया जाता है
  • DELETE ऑपरेशन लॉग किए गए हैं
  • आप अपनी तालिका में केवल विशिष्ट पंक्तियों को हटाने के लिए DELETE कथन में WHERE क्लॉज निर्दिष्ट कर सकते हैं
  • डिलीट ट्रंकेट की तुलना में धीमा है क्योंकि डिलीट ऑपरेशन लॉग हैं

MySQL ट्रंकेट

  • TRUNCATE एक डेटा डिस्क्रिप्शन लैंग्वेज (DDL) कमांड है जो टेबल को डिलीट करने के लिए लॉक करता है लेकिन रो को नहीं।
  • TRUNCATE तालिका के सभी डेटा को हटा देता है। इसलिए आप TRUNCATE स्टेटमेंट में WHERE क्लॉज निर्दिष्ट नहीं कर सकते।
  • TRUNCATE संचालन लॉग नहीं हैं और इसलिए DELETE स्टेटमेंट की तुलना में बहुत तेज हैं।

DELETE और TRUNCATE दोनों कथनों में रोलबैक संभव है।

बोनस पढ़ें :MySQL में संग्रहित प्रक्रिया कैसे बनाएं

विदेशी कुंजी के साथ तालिका को कैसे छोटा करें

यदि आपकी तालिका में विदेशी कुंजी बाधा है, तो जब आप उस तालिका के लिए TRUNCATE कथन चलाते हैं तो आपको निम्न त्रुटि प्राप्त होगी।

ERROR 1217 (23000): Cannot delete or update a parent row: a foreign key 
constraint fails

तो आपको MySQL में लॉग इन करना होगा और टेबल को छोटा करने से पहले फॉरेन की चेक को डिसेबल करना होगा, निम्न कमांड का उपयोग करके

SET FOREIGN_KEY_CHECKS=0;

तालिकाओं को छोटा करने के बाद, विदेशी कुंजी जांच पुन:सक्षम करें

SET FOREIGN_KEY_CHECKS=1;

बोनस पढ़ें :MySQL में यूजर कैसे बनाएं

MySQL में सभी तालिकाओं को कैसे छोटा करें

MySQL TRUNCATE TABLE आपको एक बार में केवल एक टेबल को हटाने की अनुमति देता है। इसलिए यदि आप एकाधिक तालिकाओं को हटाना चाहते हैं, तो आपको अलग-अलग TRUNCATE TABLE आदेश जारी करने होंगे। यहां एक से अधिक तालिकाओं को छोटा करने का एक उदाहरण दिया गया है तालिका1, तालिका2, तालिका3,…

mysql> TRUNCATE TABLE table1;
mysql> TRUNCATE TABLE table2;
mysql> TRUNCATE TABLE table3;

बोनस पढ़ें :MySQL में डेटाबेस कैसे बनाएं

आपके डेटाबेस में तालिका नामों का उपयोग करके, एकाधिक TRUNCATE TABLE कथन उत्पन्न करने के लिए यहां एक SQL क्वेरी है। निम्न क्वेरी में DATABASE_NAME को अपने डेटाबेस नाम से बदलें।

mysql> SELECT Concat('TRUNCATE TABLE ',table_schema,'.',TABLE_NAME, ';')
     FROM INFORMATION_SCHEMA.TABLES where  table_schema in ('sample');
+------------------------------------------------------------+
| Concat('TRUNCATE TABLE ',table_schema,'.',TABLE_NAME, ';') |
+------------------------------------------------------------+
| TRUNCATE TABLE sample.a;                                   |
| TRUNCATE TABLE sample.calendar;                            |
| TRUNCATE TABLE sample.categories;                          |
| TRUNCATE TABLE sample.daily_orders;                        |
| TRUNCATE TABLE sample.login;                               |
| TRUNCATE TABLE sample.meeting;                             |
| TRUNCATE TABLE sample.order_status;                        |
| TRUNCATE TABLE sample.orders;                              |
| TRUNCATE TABLE sample.orders2;                             |
| TRUNCATE TABLE sample.orders3;                             |
| TRUNCATE TABLE sample.product_sales;                       |
| TRUNCATE TABLE sample.products;                            |
| TRUNCATE TABLE sample.sales;                               |
| TRUNCATE TABLE sample.user_data;                           |
| TRUNCATE TABLE sample.users;                               |
+------------------------------------------------------------+

डेटाबेस में सभी तालिकाओं को छोटा करने के लिए उपरोक्त क्वेरी परिणाम का उपयोग करें। उम्मीद है, अब आप MySQL में टेबल को छोटा कर सकते हैं

Ubiq मिनटों में डेटा को विज़ुअलाइज़ करना और रीयल-टाइम डैशबोर्ड में मॉनिटर करना आसान बनाता है। इसे आज ही आजमाएं!

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. पीडीओ का उपयोग कर डेटाबेस में मिलान पंक्तियों के साथ समस्या आ रही है

  2. Laravel:PDOException:ड्राइवर नहीं मिल सका

  3. MySQL में utf8mb4 और utf8 चारसेट में क्या अंतर है?

  4. मेरी सरणी में दोहरा परिणाम (mysql_fetch_array)

  5. MySQL में फॉरेन की चेक को डिसेबल कैसे करें