mysql 뷰 컬럼에 collation 지정하기

2021. 11. 19. 17:36카테고리 없음

반응형

위와 같이 오류가 뜨길래 뭐지??? 대체!!!

뷰에서 컬럼 collation이 이상한가? 하고 아래의 쿼리를 이용해 조회해보니 진짜네.....

SHOW FULL COLUMNS FROM USER;

헐... 지 혼자만 utf8mb4_0900_ai_ci 네... 왜그런고 하니

뷰생성 쿼리 를 보면

(case when (`a`.`EMPLYR_STTUS_CODE` = 'P') then 'N' else 'Y' END) AS `DEL_YN`

요런 컬럼이 있는데 아무래도 실제 컬럼이 아니라 그런건지 collation이 서버기본값으로 지정된건가? 뭐지???

(mysql document를 보면 나올것 같은데... 시간이 없다! 바쁘다 바뻐!)

 

다행히 해결은 간단했다 

CONVERT( (case when (`a`.`EMPLYR_STTUS_CODE` = 'P') then 'N' else 'Y' END) USING utf8 )  AS `DEL_YN`

위처럼

CONVERT( 컬럼명 USING utf8 ) AS 'ALIAS'   

사용하면 끝!

그나저나 중요한 포인트가 있다.

using utf8 를 하니 collation이 utf8_general_ci 가 지정되었고,

using utf8mb4 를 하니 utf8mb4_0900_ai_ci  이 지정되었다. 

뭔 차이지????

 

아래의 블로그를 참고한 바에 의하면, 요즘 자주 쓰는 이모지 아이콘을 위해선 utf8mb4를 써야한다는게 핵심

[MySQL] utf8 vs utf8mb4 차이는?

 

향후 미래를 위해 우리 데이터베이스도 앞으로 utf8mb4로 싹다 갈아 엎어야겠다!

 

 

반응형