-- 设置数据库字符集为UTF8MB4
ALTER DATABASE new_world CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- 获取当前数据库中的所有表名
SELECT table_name
FROM information_schema.tables
WHERE table_schema = 'new_world';
-- 循环处理每个表
DELIMITER //
CREATE PROCEDURE ConvertTablesToUTF8MB4()
BEGIN
DECLARE done INT DEFAULT 0;
DECLARE tableName VARCHAR(255);
DECLARE cur CURSOR FOR SELECT table_name FROM information_schema.tables WHERE table_schema = 'new_world';
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
OPEN cur;
read_loop: LOOP
FETCH cur INTO tableName;
IF done THEN
LEAVE read_loop;
END IF;
SET @alterTableQuery = CONCAT('ALTER TABLE ', tableName, ' CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;');
PREPARE stmt FROM @alterTableQuery;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END LOOP;
CLOSE cur;
END //
DELIMITER ;
-- 调用存储过程以将所有表更改为UTF8MB4字符集
CALL ConvertTablesToUTF8MB4();
-- 删除存储过程
DROP PROCEDURE IF EXISTS ConvertTablesToUTF8MB4;
utf8bm3转换utf8bm4字符集
最新推荐文章于 2024-08-30 09:28:27 发布