PHP เปลี่ยน DB Engine

xvlnw   15 พฤศจิกายน 2018   ปิดความเห็น บน PHP เปลี่ยน DB Engine

สำหรับฐานข้อมูลที่มีตารางเยอะๆ และ Engine ของตารางไม่เหมือนกัน หรือต้องการจะเปลี่ยนกลับไปกลับมา ระหว่าง MyISAM และ InnoDB สามารถทำได้ด้วยการใช้ PHP เข้ามาช่วย โดยคำสั่งนี้


<?php
// connect your database here first
//
$db_host = "localhost";
$db_user = "user";
$db_pass = "pass";
$db_name = "dbname";
mysql_connect($db_host, $db_user, $db_pass);
mysql_select_db($db_name);

// Actual code starts here

$sql = "SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = '{$db_name}'
AND ENGINE = 'InnoDB'";

$rs = mysql_query($sql);

while($row = mysql_fetch_array($rs))
{
$tbl = $row[0];
$sql = "ALTER TABLE `$tbl` ENGINE=MyISAM;";
echo $sql, '<br>';
mysql_query($sql);
}
?>

จากด้านบน จะเป็นการ Query ตาราง InnoDBแล้วแก้ไขเป็น MyISAM หากต้องการทำกลับกัน ให้สลับตำแหน่งของ InnoDB และ MyISAM นะครับ