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

MySQL DROP सभी टेबल, विदेशी कुंजियों की अनदेखी

मैंने ड्रॉप स्टेटमेंट के जेनरेट किए गए सेट को उपयोगी पाया, और इन सुधारों की अनुशंसा करता हूं:

  1. जेनरेट की गई बूंदों को अपने डेटाबेस तक इस तरह सीमित करें:
SELECT concat('DROP TABLE IF EXISTS `', table_name, '`;')
FROM information_schema.tables
WHERE table_schema = 'MyDatabaseName';

नोट 1:यह DROP कथनों को निष्पादित नहीं करता है, यह आपको केवल उनकी एक सूची देता है। उन्हें निष्पादित करने के लिए आपको अपने SQL इंजन में आउटपुट को काटना और चिपकाना होगा।

नोट 2:यदि आपके पास दृश्य हैं, तो आपको प्रत्येक DROP TABLE `VIEW_NAME` को सही करना होगा DROP VIEW `VIEW_NAME` . के लिए स्टेटमेंट मैन्युअल रूप से।

  1. नोट, प्रति http://dev.mysql .com/doc/refman/5.5/hi/drop-table.html , कैस्केड के साथ गिरना व्यर्थ / भ्रामक है:

इसलिए, यदि आपको आवश्यकता हो तो ड्रॉप स्टेटमेंट काम करने के लिए:

SET FOREIGN_KEY_CHECKS = 0

यह रेफरेंशियल अखंडता जांच को अक्षम कर देगा - इसलिए जब आप अपनी जरूरत के अनुसार ड्रॉप्स का प्रदर्शन कर लेंगे, तो आप कुंजी जांच को रीसेट करना चाहेंगे

SET FOREIGN_KEY_CHECKS = 1
  1. अंतिम निष्पादन इस तरह दिखना चाहिए:
SET FOREIGN_KEY_CHECKS = 0;
-- Your semicolon separated list of DROP statements here
SET FOREIGN_KEY_CHECKS = 1;

NB:SELECT के आउटपुट को आसान बनाने के लिए, mysql -B विकल्प मदद कर सकता है।



  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. MySQL संस्करण का निर्धारण कैसे करें

  3. mysql और mysqli . के बीच अंतर

  4. क्या मैं PHP में PDO का उपयोग करके एक डेटाबेस बना सकता हूँ?

  5. पंक्ति रैंक कैसे प्राप्त करें?