mysql テーブルのエンジンをバッチ変換する必要がある場合があります。以下は PHP 操作の実装です。
/**
* バッチ変換 mysql テーブル エンジン
*/
error_reporting(e_all);
// データベース接続設定
$host = 'localhost';
$username = 'root';
$passwd = '';
$database = 'test';
// 変換されるライブラリ名の設定、マルチデータベース変換用の設定要素を追加するだけです
$configs = array($database);
//変換設定
$convert_rule = array(
'from ' => 'innodb ',
' => 'myisam'
);
mysql_engine_convert();
/**
* 変換機能
*/
関数 mysql_engine_convert()
{
global $host,$username,$passwd,$configs,$convert_rule;
if (($conn = mysql_connect($host, $username, $passwd)) !== false)
{
foreach ($configs as $db_name)
{
mysql_select_db($db_name) または exit('not found db: '. $db_name);
$tables = mysql_query("showテーブル全体");
while ($table = mysql_fetch_row($tables))
{
if ($table[1] === 'view') continue;
$sql = "show {$db_name } where name='{$table[0]}' ";
if ($result = mysql_query($sql))
{
$table_status = mysql_fetch_row($result) からのテーブル ステータス;
if ( strto lower($table_status[1]) == strto lower($convert_rule['from']))
mysql_query("alter table {$table[0]} エンジン = {$convert_rule['to ']}");
}
}
echo $db_name,':all テーブル エンジンは ',$convert_rule['to'],"n";
}
} else {
echo " db errorn";
}
}
この記事へのリンク http://www.cxybl.com/html/wlbc/Php/20120607/28510.html