我知道我可以单独发布alter table,将表存储从MyISAM更改为InnoDB.

我想知道是否有一种方法可以快速将它们全部改为InnoDB?

推荐答案

<?php
    // connect your database here first 
    // 

    // Actual code starts here 

    $sql = "SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
        WHERE TABLE_SCHEMA = 'your_database_name' 
        AND ENGINE = 'MyISAM'";

    $rs = mysql_query($sql);

    while($row = mysql_fetch_array($rs))
    {
        $tbl = $row[0];
        $sql = "ALTER TABLE `$tbl` ENGINE=INNODB";
        mysql_query($sql);
    }
?>

Mysql相关问答推荐

如何使RST(*)在巨大的数据集上快速执行?

SQL条件 Select 和条件WHERE

MySQL:统计单词在单元格中出现的次数,并将数字放在bra中单词的旁边

奇怪的MySQL SELECT循环;但不是\G

在 .NET 6 中使用 Dapper Framework 未能成功连接到 MySql

MySQL MDL(元数据锁)为什么会导致死锁?

"Shelf服务器容器访问MySQL Docker容器时出现SocketException异常"

是否可以使用以EXPLAIN EXTENDED ...开头的 SQL 语句修改数据?

Select 最高等级最多的部门名称

MySQL 在第一个匹配行后停止搜索 N 行(不是 LIMIT)

当查询 MySQL 的 goroutine 过多时,Go 会出现panic

基于 3 个条件 Select 3 行的最佳 MySQL 索引和查询

Over() 函数不覆盖表中的所有行

显示值为空的所有列名

MYSQL:创建表中的索引关键字以及何时使用它

你如何 OR 两个 LIKE 语句?

MySQL:按字段排序,将空单元格放在末尾

如何存储重复日期牢记夏令时

Ubuntu 中的 MySQL JDBC jar 文件在哪里?

Yii2 如何进行 where AND 或 OR 条件分组?