ขั้นแรก กำหนดประเภทของฐานข้อมูล MySQL เช่น เอ็นจิ้นของมันคือ InnoDB หรือ MyISAM เพื่อให้บรรลุสิ่งนี้ ให้ใช้คอลัมน์เครื่องมือจาก information_schema.columns.tables
ไวยากรณ์มีดังนี้
เลือกเครื่องยนต์จาก INFORMATION_SCHEMA.TABLESWHERE TABLE_SCHEMA ='yourDatabaseName' AND TABLE_NAME ='yourTableName';
ที่นี่ ฉันมีตารางชื่อ 'StudentInformations' −
mysql> สร้างตาราง StudentInformations -> ( -> StudentId int ไม่ใช่ null auto_increment, -> StudentFirstName varchar(20), -> StudentLastName varchar(20), -> Primary Key(StudentId) -> );Query OK, 0 แถวที่ได้รับผลกระทบ (0.57 วินาที)
ตอนนี้คุณสามารถรู้ได้ว่าตารางกำลังใช้ InnoDB หรือ MyISAM โดยใช้ไวยากรณ์ด้านบน ฐานข้อมูลของเราคือ 'ทดสอบ'
แบบสอบถามมีดังต่อไปนี้ −
mysql> เลือกเอ็นจิ้นจาก information_schema.tables -> โดยที่ table_schema ='test' -> และ table_name ='StudentInformations';
ต่อไปนี้เป็นผลลัพธ์ -
<ก่อนหน้า>+---------+| เครื่องยนต์ |+---------+| InnoDB |+-------- +1 แถวในชุด (0.05 วินาที)เปลี่ยนเอ็นจิ้นของตาราง 'StudentInformations' โดยใช้คำสั่ง alter ไวยากรณ์ดังต่อไปนี้เพื่อเปลี่ยนเอ็นจิ้นของตารางใด ๆ
เปลี่ยนตาราง yourTableName ENGINE ='yourEngineName';
ให้เราเปลี่ยนเอ็นจิ้น InnoDB เป็น MyISAM แบบสอบถามมีดังนี้ −
mysql> แก้ไขตาราง StudentInformations ENGINE ='MyISAM'; Query OK, 6 แถวได้รับผลกระทบ (1.84 วินาที)Records − 6 Duplicates − 0 Warnings − 0
ผลลัพธ์ที่แสดงด้านบนแสดง 6 แถวได้รับผลกระทบเนื่องจากมี 6 แถวในตาราง
เพื่อตรวจสอบว่าตารางถูกแปลงจาก InnoDB เป็น MyISAM หรือไม่ ต่อไปนี้เป็นแบบสอบถาม -
mysql> เลือกเอ็นจิ้นจาก information_schema.tables-> โดยที่ table_schema ='test'-> และ table_name ='StudentInformations';
นี่คือผลลัพธ์ที่แสดงเครื่องยนต์ได้รับการอัพเดตเรียบร้อยแล้ว -
<ก่อนหน้า>+---------+| เครื่องยนต์ |+---------+| MyISAM |+--------+1 แถวในชุด (0.00 วินาที)