Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

จะแก้ไขเอ็นจิ้นฐานข้อมูลของตารางฐานข้อมูล MySQL ได้อย่างไร


ขั้นแรก กำหนดประเภทของฐานข้อมูล 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 วินาที)