कभी-कभी आपको 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 मिनटों में डेटा को विज़ुअलाइज़ करना और रीयल-टाइम डैशबोर्ड में मॉनिटर करना आसान बनाता है। इसे आज ही आजमाएं!