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

कुछ वाइल्डकार्ड से मेल खाने वाले MySQL डेटाबेस ड्रॉप करें?

मूल विचार अपने डेटाबेस में "शो टेबल" चलाने के लिए है, और इसके परिणामों का उपयोग अपने इच्छित टेबल का चयन करने के लिए करें। मुझे नहीं लगता कि MySQL आपको "शो टेबल" से परिणाम के साथ कुछ भी करने देता है, लेकिन मैं शायद गलत हूं।

शेल का उपयोग करके एक त्वरित और गंदा समाधान यहां दिया गया है:

mysql -u your_user -D your_database_name -e "show tables" -s | 
  egrep "^Whatever_" | 
  xargs -I "@@" echo mysql -u your_user -D your_database_name -e "DROP TABLE @@"

यह "जो भी_" से शुरू होने वाली तालिकाओं को छोड़ने के लिए सभी शेल कमांड का प्रिंट आउट लेगा। यदि आप चाहते हैं कि यह वास्तव में उन आदेशों को निष्पादित करे, तो "इको" शब्द को हटा दें।

संपादित करें :मैं ऊपर की व्याख्या करना भूल गया! मैं नहीं जानता कि आप शेल स्क्रिप्टिंग से कितने परिचित हैं, लेकिन यह है:

mysql -u your_user -D your_database_name -e "show tables" -s

"Tables_in_your_database_name" शीर्षक के साथ, आपकी सभी तालिकाओं की एक सूची प्रिंट करता है। उसमें से आउटपुट पाइप किया जाता है (| प्रतीक का अर्थ है "पाइप", जैसा कि पास-ऑन में है) अगले कमांड के माध्यम से:

egrep "^Whatever_"

किसी भी लाइन की खोज करता है जो शुरू होती है (जिसमें ^ प्रतीकों का अर्थ है "बीइंग विथ") शब्द "Whatever_" और केवल उन्हें प्रिंट करता है। अंत में, हम कमांड के माध्यम से "Whatever_*" टेबल की उस सूची को पाइप करते हैं:

xargs -I "@@" echo mysql -u your_user -D your_database_name -e "DROP TABLE @@"

जो प्रत्येक पंक्ति को तालिका नामों की सूची में लेता है, और कमांड में "@@" के बजाय इसे सम्मिलित करता है

echo mysql -u your_user -D your_database_name -e "DROP TABLE @@"

इसलिए यदि आपके पास "Whatever_1", "Whatever_2", "Whatever_3" नाम की तालिकाओं का एक गुच्छा था, तो उत्पन्न कमांड होंगे:

echo mysql -u your_user -D your_database_name -e "DROP TABLE Whatever_1"
echo mysql -u your_user -D your_database_name -e "DROP TABLE Whatever_2"
echo mysql -u your_user -D your_database_name -e "DROP TABLE Whatever_3"

जो निम्नलिखित आउटपुट देगा:

mysql -u your_user -D your_database_name -e "DROP TABLE Whatever_1"
mysql -u your_user -D your_database_name -e "DROP TABLE Whatever_2"
mysql -u your_user -D your_database_name -e "DROP TABLE Whatever_3"

मुझे आशा है कि यह पर्याप्त विवरण था, और यह कि मैं बहुत अधिक जानकारी के साथ किसी को सिर पर नहीं मार रहा हूं। शुभकामनाएं, और "ड्रॉप टेबल" कमांड का उपयोग करते समय सावधान रहें!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ActiveRecord का उपयोग करके mysql के साथ DISTINCT ON का उपयोग कैसे करें?

  2. क्या कोई MySQL विदेशी कुंजी समझा सकता है

  3. पहले हटाए गए नंबर को ऑटो इंक्रीमेंट भरें

  4. हाइबरनेट मानदंड API:n यादृच्छिक पंक्तियाँ प्राप्त करें

  5. आप Laravel 4 में एक ऑटो-इंक्रीमेंटिंग प्राथमिक कुंजी के रूप में BIGINT का उपयोग कैसे करते हैं?