सबसे पहले यह निर्धारित करें कि MySQL डेटाबेस का इंजन InnoDB है या MyISAM। इसके लिए information_schema.tables के ENGINE कॉलम का उपयोग करें।
वर्तमान इंजन जांचने का सिंटैक्स
SELECT ENGINE FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'yourDatabaseName' AND TABLE_NAME = 'yourTableName';
उदाहरण
मेरे पास 'StudentInformations' नाम की एक टेबल है:
mysql> CREATE TABLE StudentInformations (
-> StudentId INT NOT NULL AUTO_INCREMENT,
-> StudentFirstName VARCHAR(20),
-> StudentLastName VARCHAR(20),
-> PRIMARY KEY(StudentId)
-> );
Query OK, 0 rows affected (0.57 sec)
अब जांचते हैं कि टेबल किस इंजन का उपयोग कर रही है। हमारा डेटाबेस 'test' है:
mysql> SELECT ENGINE
-> FROM INFORMATION_SCHEMA.TABLES
-> WHERE TABLE_SCHEMA = 'test'
-> AND TABLE_NAME = 'StudentInformations';
आउटपुट
+--------+ | ENGINE | +--------+ | InnoDB | +--------+ 1 row in set (0.05 sec)
इंजन बदलने का सिंटैक्स
ALTER TABLE yourTableName ENGINE = 'yourEngineName';
InnoDB से MyISAM में बदलें
mysql> ALTER TABLE StudentInformations ENGINE = 'MyISAM'; Query OK, 6 rows affected (1.84 sec) Records: 6 Duplicates: 0 Warnings: 0
ऊपर दिखाए गए परिणाम में 6 पंक्तियां प्रभावित हुई हैं क्योंकि टेबल में 6 पंक्तियां हैं।
परिवर्तन सत्यापित करें
mysql> SELECT ENGINE
-> FROM INFORMATION_SCHEMA.TABLES
-> WHERE TABLE_SCHEMA = 'test'
-> AND TABLE_NAME = 'StudentInformations';
आउटपुट
+--------+ | ENGINE | +--------+ | MyISAM | +--------+ 1 row in set (0.00 sec)