mysql 批量修改字符集 排序规则 语句

某些情况下我们会遇到数据库 不同表甚至相同表的各个字段的字符集或排序规则 不同 

以前是一个个字段修改 后来一个个表修改 现在 可以直接修改一个数据库中的了

1单表修改

ALTER table `jzb_asset` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

2

自动批量循环修改 仅需要修改数据库名

需要注意 如果某个表添加了外键就无法修改

DROP PROCEDURE
IF
	EXISTS hello_sql;-- 检查程序
-- DELIMITER;; 定义结束符号为;;
CREATE PROCEDURE hello_sql ( ) BEGIN-- 创建程序
	DECLARE
		i INT DEFAULT 0;-- 创建字段
	DECLARE
		s VARCHAR ( 255 ) DEFAULT 'tablename';
	DECLARE
		leng INT DEFAULT 0;
	
	SET leng = ( SELECT COUNT(*) FROM `information_schema`.`TABLES` WHERE `TABLE_SCHEMA` = 'ry-cloud' AND `TABLE_TYPE` = 'BASE TABLE' );
	WHILE-- 创建循环
		s < leng DO
		
		SET s = ( SELECT TABLE_NAME FROM `information_schema`.`TABLES` WHERE `TABLE_SCHEMA` = 'ry-cloud' AND `TABLE_TYPE` = 'BASE TABLE' LIMIT i, 1 );
		
		SET @InsertData = CONCAT( 'ALTER TABLE ', s, '  CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;' );
		PREPARE stmt 
		FROM
			@InsertData;
		EXECUTE stmt;
		SELECT
			@InsertData;
		
		SET i = i + 1;
		
	END WHILE;
	
END;
CALL hello_sql ( );-- 执行程序

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值