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로 싹다 갈아 엎어야겠다!