MySQL कमांड सभी MyISAM डेटाबेस को क्वेरी करता है


13

मैं सराहना करता हूं कि अगर कोई भी मेरी मदद कर सकता है तो MySQL में उचित आदेश क्या है "MyISAM" इंजन के लिए सभी डेटाबेस को क्वेरी करने के लिए। मुझे MyISAM से InnoDB तक सभी DB और तालिकाओं को बदलने की आवश्यकता है।

जवाबों:


25

नीचे उन सभी तालिकाओं को खोजने के लिए क्वेरी है जिनके पास MyISAMइंजन है

SELECT TABLE_SCHEMA as DbName ,TABLE_NAME as TableName ,ENGINE as Engine FROM information_schema.TABLES WHERE ENGINE='MyISAM' AND TABLE_SCHEMA NOT IN('mysql','information_schema','performance_schema');

ऊपर क्वेरी MyISAMइंजन वाले सभी तालिकाओं को सूचीबद्ध करेगी ।

अपने मौजूदा MyISAM तालिकाओं को InnoDB में कैसे परिवर्तित करें, इसके लिए नीचे दी गई क्वेरी है जो मौजूदा MyISAMटेबल्स को बदलने के लिए ALTER स्टेटमेंट लौटाएगी InnoDB

SELECT CONCAT('ALTER TABLE `', TABLE_SCHEMA,'`.`',TABLE_NAME, '` ENGINE = InnoDB;') FROM information_schema.TABLES WHERE ENGINE='MyISAM' AND TABLE_SCHEMA NOT IN('mysql','information_schema','performance_schema');

इंजन बदलने के लिए आप इन कथनों को निष्पादित कर सकते हैं।


साभार @AbdulManaf मुझे उम्मीद नहीं थी कि पहली कमांड सर्वर पर समय लेगी।
जेम्स वाइज

हां, इसमें समय नहीं लगना चाहिए।
अब्दुल मनफ

डेटाबेस में सभी तालिकाओं को खोजने के लिए क्वेरी कैसे करें जो InnoDB नहीं हैं?
जेम्स वाइज
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.