1、修改数据库编码及字符集
ALTER DATABASE 数据库名称 CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;


2.批量修改数据库里表的字符集
SELECT 
CONCAT("ALTER TABLE `", TABLE_NAME,"` CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;") 
AS target_tables
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA="数据库名称"
AND TABLE_TYPE="BASE TABLE"



3.修改表中字段的字符集
SELECT CONCAT(
    'ALTER TABLE `', 
    TABLE_SCHEMA, 
    '`.`', 
    TABLE_NAME, 
    '` MODIFY COLUMN `', 
    COLUMN_NAME, 
    '` ', 
    COLUMN_TYPE, 
    ' CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci',
    CASE WHEN IS_NULLABLE = 'NO' THEN ' NOT NULL' ELSE '' END,
    CASE WHEN COLUMN_DEFAULT IS NOT NULL THEN CONCAT(' DEFAULT ''', COLUMN_DEFAULT, '''') ELSE '' END,
    ' COMMENT ''', 
    IFNULL(COLUMN_COMMENT, ''), 
    ''';'
) AS alter_statement
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = 'siyuan' 
AND DATA_TYPE IN ('varchar', 'char', 'text', 'tinytext', 'mediumtext', 'longtext');

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐