• MySQL 批量修改数据表编码及字符集


    1. 修改数据库编码及字符集

    这一步比较简单,直接执行即可:

    ALTER DATABASE db_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin;

    2. 修改数据表与表中字段的编码及字符集

    这里需要两步。

    首先,需要利用语句,生成所有实际执行的语句:

    SELECT 
    CONCAT("ALTER TABLE `", TABLE_NAME,"` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;") 
    AS target_tables
    FROM INFORMATION_SCHEMA.TABLES
    WHERE TABLE_SCHEMA="db_name"
    AND TABLE_TYPE="BASE TABLE"
     

    此语句会基于 MySQL 的元数据表,得到一组可直接执行的 SQL 列表,如下:

    ALTER TABLE `table1` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
    ALTER TABLE `table2` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
    ALTER TABLE `table3` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
    ALTER TABLE `table4` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
    ALTER TABLE `table5` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
    ALTER TABLE `table6` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;

    其中,table1 到 table6 即为数据库中的所有数据表。

    然后,直接将语句粘贴并执行即可。

    注意,这里使用 CONVERT TO 而非 DEFAULT,是因为后者不会修改表中字段的编码和字符集。

    此外,对于数据表比较多的数据库,可以先将第一步的执行结果导出到 .sql 文件,再通过该 SQL 文件执行即可。

  • 相关阅读:
    HTML与用户的交互 表单
    HTML区块元素与网页布局
    css清除浮动
    gulp 配置前端项目打包
    React Ntive 学习手记
    gulp 配置自动化前端开发
    HTML5调用手机相机拍照
    JQuery 1.8.3对IE9兼容问题getAttribute
    gruntJs篇之connect+watch自动刷新
    360安全浏览器浏览模式调整
  • 原文地址:https://www.cnblogs.com/but009/p/11703714.html
Copyright © 2020-2023  润新知