zoukankan      html  css  js  c++  java
  • 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 文件执行即可。

  • 相关阅读:
    MySQL在windows上的安装步骤
    k-均值聚类算法
    python2和python3中filter函数
    解决mysql出现的问题#1055
    python高级编程1
    二叉树
    Python常用算法(二)
    Python常用算法(一)
    Java蓝桥杯--入门训练(1) Fibonacci数列
    java基础--for-跑步运动
  • 原文地址:https://www.cnblogs.com/but009/p/11703714.html
Copyright © 2011-2022 走看看