MySqlすべてのテーブルの文字コードを一括変更

1156 ワード

  • 表のすべての文字コード
     alter table    convert to character set utf8mb4;
    
  • を変更する.
  • すべてのテーブルのテーブル名を検索する
     select table_name from information_schema.`TABLES` where TABLE_SCHEMA = '    ';
    
  • ストアド・プロシージャを使用してすべてのテーブルを一括変更
    CREATE DEFINER=`root`@`%` PROCEDURE `      `() --       ,          
    begin
     
    DECLARE cnt VARCHAR(100); --               
    DECLARE i int;  --     ,             
    set i = 0;
    
    --     
    	while i < 158  do --    158              158,               ,    
    		IF i < 56 THEN		--      56             
    		set i = i + 1;
    ELSE
    	select table_name into @cnt from information_schema.`TABLES` where TABLE_SCHEMA = 'dftc_dev' limit i,1;
    	-- select @cnt; -- mysql     
    	-- alter table @cnt convert to character set utf8; --      ,        
    	
    	set @sql = concat("alter table ", @cnt, " convert to character set utf8mb4");  --   ,        
    	prepare stmt from @sql;  --    
    		execute stmt;  --   
    	deallocate prepare stmt;  --   
    	set i = i + 1;
    END IF;					
    	
    	end while;  
    --     ,    
     
    end
    

    転載先:https://blog.csdn.net/LUNG108/article/details/78285054