คำสั่ง MySQL ทำการสืบค้นฐานข้อมูล MyISAM ทั้งหมด


13

ฉันจะขอบคุณถ้าใครสามารถช่วยฉันในสิ่งที่เป็นคำสั่งที่เหมาะสมใน MySQL เพื่อค้นหาฐานข้อมูลทั้งหมดที่มีเครื่องมือ "MyISAM" ฉันต้องแปลง DB & ทุกตารางจาก MyISAM เป็น InnoDB

คำตอบ:


25

ด้านล่างคือแบบสอบถามเพื่อค้นหาตารางทั้งหมดที่มีMyISAMEngine

SELECT TABLE_SCHEMA as DbName ,TABLE_NAME as TableName ,ENGINE as Engine FROM information_schema.TABLES WHERE ENGINE='MyISAM' AND TABLE_SCHEMA NOT IN('mysql','information_schema','performance_schema');

แบบสอบถามด้านบนจะแสดงรายการตารางทั้งหมดที่มีMyISAMEngine

สำหรับวิธีการแปลงตาราง MyISAM ที่มีอยู่เพื่อ InnoDB ด้านล่างเป็นแบบสอบถามที่จะกลับงบ ALTER การแปลงที่มีอยู่ตารางไปMyISAMInnoDB

SELECT CONCAT('ALTER TABLE `', TABLE_SCHEMA,'`.`',TABLE_NAME, '` ENGINE = InnoDB;') FROM information_schema.TABLES WHERE ENGINE='MyISAM' AND TABLE_SCHEMA NOT IN('mysql','information_schema','performance_schema');

คุณสามารถรันคำสั่งเหล่านี้เพื่อแปลงเอนจิน


ขอบคุณ @AbdulManaf ฉันไม่ได้คาดหวังว่าคำสั่งแรกจะใช้เวลาบนเซิร์ฟเวอร์
James Wise

ใช่มันไม่ควรใช้เวลา
อับดุลมานาฟ

วิธีสอบถามเพื่อค้นหาตารางทั้งหมดในฐานข้อมูลที่ไม่ใช่ InnoDB
James Wise
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.