모든 열의 모든 테이블에서 이러한 명령문을 실행해야합니다.
alter table table_name charset=utf8;
alter table table_name alter column column_name charset=utf8;
MySQL 내에서 어떤 식 으로든 자동화 할 수 있습니까? 나는 mysqldump를 피하는 것을 선호한다
업데이트 : Richard Bronosky는 나에게 길을 보여주었습니다 :-)
모든 테이블에서 실행 해야하는 쿼리 :
alter table DBname.DBfield CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
다른 모든 쿼리를 생성하는 미친 쿼리 :
SELECT distinct CONCAT( 'alter table ', TABLE_SCHEMA, '.', TABLE_NAME, ' CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;' ) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = 'DBname';
하나의 데이터베이스에서만 실행하고 싶었습니다. 한 번에 모두 실행하는 데 너무 오래 걸렸습니다. 테이블 당 필드 당 하나의 쿼리를 생성하는 것으로 나타났습니다. 그리고 테이블 당 하나의 쿼리 만 필요했습니다 (구출과 구별됨). 파일에서 출력을 얻는 것이 내가 그것을 깨닫는 방법이었습니다.
파일로 출력을 생성하는 방법 :
mysql -B -N --user=user --password=secret -e "SELECT distinct CONCAT( 'alter table ', TABLE_SCHEMA, '.', TABLE_NAME, ' CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;' ) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = 'DBname';" > alter.sql
마지막으로 모든 쿼리를 실행하십시오.
mysql --user=user --password=secret < alter.sql
고마워 Richard. 당신은 남자입니다!