MySQL 계열은 컬럼 캐릭터셋도 개별 관리되서 초기에 utf-8로 데이터베이스 생성 안하면 캐릭터셋 변경하기 엄청 불편 합니다. 매번 스크립트 생성 SQL 만들기도 번거로워서 여기 올립니다.
1. 테이블 캐릭터셋 변경
SELECT CONCAT('ALTER TABLE '
, T.TABLE_NAME
, ' DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;')
FROM INFORMATION_SCHEMA.tables T
WHERE T.TABLE_SCHEMA = 'db_schema'
2. 컬럼 캐릭터셋 변경
SELECT CONCAT('ALTER TABLE '
, T.TABLE_NAME
, ' MODIFY COLUMN '
, C.COLUMN_NAME
, ' '
, C.COLUMN_TYPE
, ' CHARACTER SET utf8 COLLATE utf8_general_ci;')
FROM INFORMATION_SCHEMA.tables T
, INFORMATION_SCHEMA.columns C
WHERE C.TABLE_NAME = T.TABLE_NAME
AND C.CHARACTER_SET_NAME IS NOT NULL
AND T.TABLE_SCHEMA = 'db_schema'
AND T.TABLE_NAME ='table_name'
ORDER BY T.TABLE_NAME
, C.ORDINAL_POSITION