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

发布于 2022-09-04 10:48:08 字数 74 浏览 6 评论 0

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

我偏爱纯白色 2022-09-11 10:48:09

参考网上说的自己试了一下可以用,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;
    }
}

类似这样

clipboard.png

自由范儿 2022-09-11 10:48:09

我只是个搬运工:alter table 表名 modify column 字段名 类型;

sorry 看错需求.

无声静候 2022-09-11 10:48:09
ALTER TABLE `t_test`
MODIFY COLUMN `money`  decimal(22,10)
难得心□动 2022-09-11 10:48:09

推荐给你我的解决方案
http://blog.csdn.net/yangjieg...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文