MySQL टेबल्स की मरम्मत केवल MyISAM इंजन प्रकार के लिए लागू होती है, InnoDB के लिए नहीं। इसलिए, हमें इंजन प्रकार को MyISAM में बदलने की आवश्यकता है।
निम्नलिखित एक उदाहरण है।
टेबल बनाना
mysql> create table RepairTableDemo -> ( -> id int, -> name varchar(100) -> ); Query OK, 0 rows affected (0.51 sec)
इस टेबल को MyISAM इंजन प्रकार में बदलने के लिए, ALTER का उपयोग करें।
mysql> ALTER TABLE RepairTableDemo ENGINE = MyISAM; Query OK, 0 rows affected (1.14 sec) Records: 0 Duplicates: 0 Warnings: 0
टेबल में रिकॉर्ड्स डालना।
mysql> insert into RepairTableDemo values(1,'John'),(2,'Carol'),(3,'Johnson'); Query OK, 3 rows affected (0.06 sec) Records: 3 Duplicates: 0 Warnings: 0
सभी रिकॉर्ड्स प्रदर्शित करने के लिए।
mysql> select *from RepairTableDemo;
निम्नलिखित आउटपुट है।
+------+---------+ | id | name | +------+---------+ | 1 | John | | 2 | Carol | | 3 | Johnson | +------+---------+ 3 rows in set (0.00 sec)
आइए अब टेबल रिपेयर करने का सिंटैक्स देखते हैं।
REPAIR TABLE yourTableName;
निम्नलिखित क्वेरी है -
mysql> REPAIR TABLE RepairTableDemo;
यहां आउटपुट है। यह दर्शाता है कि मरम्मत की स्थिति ठीक है।
+--------------------------+--------+----------+----------+ | Table | Op | Msg_type | Msg_text | +--------------------------+--------+----------+----------+ | business.repairtabledemo | repair | status | OK | +--------------------------+--------+----------+----------+ 1 row in set (0.10 sec)
महत्वपूर्ण:REPAIR TABLEकेवल MyISAM, ARCHIVE, और CSV टेबल्स के लिए काम करता है। InnoDB टेबल्स के लिए,CHECK TABLEभ्रष्टाचार का पता लगा सकता है, लेकिन मरम्मत के लिए आमतौर पर डंप और रिस्टोर (mysqldump/mysql) याALTER TABLE ... ENGINE=InnoDB(टेबल रीबिल्ड) की आवश्यकता होती है। MySQL 8.0+ में InnoDB में स्वचालित भ्रष्टाचार पहचान और रिकवरी शामिल है।