खोज…


मूल रूपांतरण

ALTER TABLE foo ENGINE=InnoDB;

यह तालिका को परिवर्तित करता है, लेकिन इंजनों के बीच किसी भी अंतर का ध्यान नहीं रखता है। अधिकांश अंतर कोई फर्क नहीं पड़ेगा, खासकर छोटी तालिकाओं के लिए। लेकिन व्यस्त तालिकाओं के लिए, अन्य विचारों पर विचार किया जाना चाहिए। रूपांतरण के विचार

सभी डेटाबेस को एक डेटाबेस में परिवर्तित करना

एक डेटाबेस में सभी तालिकाओं को आसानी से परिवर्तित करने के लिए, निम्नलिखित का उपयोग करें:

SET @DB_NAME = DATABASE();

SELECT  CONCAT('ALTER TABLE `', table_name, '` ENGINE=InnoDB;') AS sql_statements
FROM    information_schema.tables
WHERE   table_schema = @DB_NAME
AND     `ENGINE` = 'MyISAM'
AND     `TABLE_TYPE` = 'BASE TABLE';

नोट: आपको DATABASE() फ़ंक्शन के लिए अपने डेटाबेस से जुड़ा होना चाहिए, अन्यथा यह NULL वापस आ जाएगा। यह ज्यादातर सर्वर के साथ शिप किए गए मानक mysql क्लाइंट पर लागू होता है क्योंकि यह डेटाबेस को निर्दिष्ट किए बिना कनेक्ट करने की अनुमति देता है।

अपने डेटाबेस में सभी MyISAM टेबल को पुनः प्राप्त करने के लिए इस SQL स्टेटमेंट को चलाएँ।

अंत में, आउटपुट को कॉपी करें और उसमें से SQL क्वेरी को निष्पादित करें।



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow