php - mysql批量修改数据库字段类型

查看:86
本文介绍了php - mysql批量修改数据库字段类型的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

业务修改,需要将数据库里原来decimal(14,2)改成decimal(22,10),有批量修改的方法么,百度了一下没有找到可以用的

解决方案

参考网上说的自己试了一下可以用,cli模式下,执行下面一段代码

$sql = "SELECT CONCAT( 'alter table ', table_name, ' MODIFY COLUMN ', column_name, ' decimal(22,10) DEFAULT NULL;' ) AS execSql, TABLE_NAME, COLUMN_NAME, DATA_TYPE FROM INFORMATION_SCHEMA.columns a WHERE TABLE_SCHEMA = '".YourDBName."' AND data_type IN ('decimal')";
// 返回的结果里已经将要执行的更改sql拼接好了,接下来遍历执行就行了
$return = $this->dbh->query($sql)->fetchAll();
foreach($return as $sql)
{
    try
    {
        $this->dbh->query($sql->execSql);
    }
    catch (PDOException $e)
    {
        echo 'error: '. $e->getMessage() ."exec sql : ".$sql->execSql.PHP_EOL.PHP_EOL;
    }
}

类似这样

这篇关于php - mysql批量修改数据库字段类型的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆